<html>
<head><script>
var $gwt_version = "1.6.4";
var $wnd = parent;
var $doc = $wnd.document;
var $moduleName, $moduleBase;
var $stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent(a);} : null;
$stats && $stats({moduleName:'fukila2',subSystem:'startup',evtGroup:'moduleStartup',millis:(new Date()).getTime(),type:'moduleEvalStart'});
</script></head>
<body>
<script><!--
var _;
function equals_2(other){
  return this === (other == null?null:other);
}

function hashCode_4(){
  return this.$H || (this.$H = ++sNextHashId);
}

function Object_0(){
}

_ = Object_0.prototype = {};
_.equals$ = equals_2;
_.hashCode$ = hashCode_4;
_.typeMarker$ = nullMethod;
_.typeId$ = 1;
function $cancel(this$static){
  if (!this$static.running) {
    return;
  }
  $remove_9(animations, this$static);
  $onCancel(this$static);
  this$static.started = false;
  this$static.running = false;
}

function $onCancel(this$static){
  if (this$static.started) {
    $onComplete(this$static);
  }
}

function $run(this$static, duration, startTime){
  $cancel(this$static);
  this$static.running = true;
  this$static.duration = duration;
  this$static.startTime = startTime;
  if ($update(this$static, (new Date()).getTime())) {
    return;
  }
  if (!animations) {
    animations = $ArrayList(new ArrayList());
    animationTimer = ($clinit() , $clinit_108() , new Animation$1());
  }
  $add_4(animations, this$static);
  if (animations.size == 1) {
    $schedule(animationTimer, 25);
  }
}

function $update(this$static, curTime){
  var finished, progress;
  finished = curTime >= this$static.startTime + this$static.duration;
  if (this$static.started && !finished) {
    progress = (curTime - this$static.startTime) / this$static.duration;
    $onUpdate(this$static, (1 + Math.cos(3.141592653589793 + progress * 3.141592653589793)) / 2);
    return false;
  }
  if (!this$static.started && curTime >= this$static.startTime) {
    this$static.started = true;
    this$static.offsetHeight = parseInt(this$static.curPanel.element['offsetHeight']) || 0;
    this$static.offsetWidth = parseInt(this$static.curPanel.element['offsetWidth']) || 0;
    this$static.curPanel.element.style['overflow'] = 'hidden';
    $onUpdate(this$static, (1 + Math.cos(3.141592653589793)) / 2);
  }
  if (finished) {
    $onComplete(this$static);
    this$static.started = false;
    this$static.running = false;
    return true;
  }
  return false;
}

function updateAnimations(){
  var animation, animation$array, animation$index, animation$max, curAnimations, curTime;
  curAnimations = initDim(_3Lcom_google_gwt_animation_client_Animation_2_classLit, 98, 6, animations.size, 0);
  curAnimations = dynamicCast($toArray(animations, curAnimations), 2);
  curTime = (new Date()).getTime();
  for (animation$array = curAnimations , animation$index = 0 , animation$max = animation$array.length; animation$index < animation$max; ++animation$index) {
    animation = animation$array[animation$index];
    if (animation.running && $update(animation, curTime)) {
      $remove_9(animations, animation);
    }
  }
  if (animations.size > 0) {
    $schedule(animationTimer, 25);
  }
}

function Animation(){
}

_ = Animation.prototype = new Object_0();
_.typeId$ = 3;
_.duration = -1;
_.running = false;
_.startTime = -1;
_.started = false;
var animationTimer = null, animations = null;
function $clinit_108(){
  $clinit_108 = nullMethod;
  timers = $ArrayList(new ArrayList());
  addCloseHandler(new Timer$1());
}

function $cancel_1(this$static){
  if (this$static.isRepeating) {
    $wnd.clearInterval(this$static.timerId);
  }
   else {
    $wnd.clearTimeout(this$static.timerId);
  }
  $remove_9(timers, this$static);
}

function $fireImpl(this$static){
  if (!this$static.isRepeating) {
    $remove_9(timers, this$static);
  }
  this$static.run();
}

function $schedule(this$static, delayMillis){
  if (delayMillis <= 0) {
    throw $IllegalArgumentException(new IllegalArgumentException(), 'must be positive');
  }
  $cancel_1(this$static);
  this$static.isRepeating = false;
  this$static.timerId = createTimeout(this$static, delayMillis);
  $add_4(timers, this$static);
}

function createTimeout(timer, delay){
  return $wnd.setTimeout(function(){
    timer.fire();
  }
  , delay);
}

function fire_2(){
  $fireImpl(this);
}

function Timer(){
}

_ = Timer.prototype = new Object_0();
_.fire = fire_2;
_.typeId$ = 4;
_.isRepeating = false;
_.timerId = 0;
var timers;
function $clinit(){
  $clinit = nullMethod;
  $clinit_108();
}

function run(){
  updateAnimations();
}

function Animation$1(){
}

_ = Animation$1.prototype = new Timer();
_.run = run;
_.typeId$ = 5;
function $initCause(this$static, cause){
  if (this$static.cause) {
    throw $IllegalStateException(new IllegalStateException(), "Can't overwrite cause");
  }
  if (cause == this$static) {
    throw $IllegalArgumentException(new IllegalArgumentException(), 'Self-causation not permitted');
  }
  this$static.cause = cause;
  return this$static;
}

function Throwable(){
}

_ = Throwable.prototype = new Object_0();
_.typeId$ = 6;
_.cause = null;
_.detailMessage = null;
function Exception(){
}

_ = Exception.prototype = new Throwable();
_.typeId$ = 7;
function $RuntimeException(this$static, message){
  this$static.detailMessage = message;
  return this$static;
}

function RuntimeException(){
}

_ = RuntimeException.prototype = new Exception();
_.typeId$ = 8;
function $JavaScriptException(this$static, e){
  return this$static;
}

function JavaScriptException(){
}

_ = JavaScriptException.prototype = new RuntimeException();
_.typeId$ = 9;
function createFunction(){
  return function(){
  }
  ;
}

function equals__devirtual$(this$static, other){
  return this$static.typeMarker$ == nullMethod || this$static.typeId$ == 2?this$static.equals$(other):(this$static == null?null:this$static) === (other == null?null:other);
}

function hashCode__devirtual$(this$static){
  return this$static.typeMarker$ == nullMethod || this$static.typeId$ == 2?this$static.hashCode$():this$static.$H || (this$static.$H = ++sNextHashId);
}

var sNextHashId = 0;
function StringBufferImpl(){
}

_ = StringBufferImpl.prototype = new Object_0();
_.typeId$ = 0;
function StringBufferImplAppend(){
}

_ = StringBufferImplAppend.prototype = new StringBufferImpl();
_.typeId$ = 0;
_.string = '';
function $clinit_11(){
  $clinit_11 = nullMethod;
  $clinit_9();
  new DOMImplSafari();
}

function $eventGetKeyCode(evt){
  return evt.which || (evt.keyCode || 0);
}

function $getBodyOffsetLeft(){
  return 0;
}

function $getBodyOffsetTop(){
  return 0;
}

function $getFirstChildElement(elem){
  var child = elem.firstChild;
  while (child && child.nodeType != 1)
    child = child.nextSibling;
  return child;
}

function $getParentElement(elem){
  var parent_0 = elem.parentNode;
  if (parent_0 == null) {
    return null;
  }
  if (parent_0.nodeType != 1)
    parent_0 = null;
  return parent_0;
}

function $setInnerText(elem, text){
  while (elem.firstChild) {
    elem.removeChild(elem.firstChild);
  }
  if (text != null) {
    elem.appendChild(elem.ownerDocument.createTextNode(text));
  }
}

function DOMImpl(){
}

_ = DOMImpl.prototype = new Object_0();
_.typeId$ = 0;
function $clinit_10(){
  $clinit_10 = nullMethod;
  $clinit_11();
}

function DOMImplStandard(){
}

_ = DOMImplStandard.prototype = new DOMImpl();
_.typeId$ = 0;
function $clinit_9(){
  $clinit_9 = nullMethod;
  $clinit_10();
}

function $getAbsoluteLeft(elem){
  if (elem.offsetLeft == null) {
    return 0;
  }
  var left = 0;
  var doc = elem.ownerDocument;
  var curr = elem.parentNode;
  if (curr) {
    while (curr.offsetParent) {
      left -= curr.scrollLeft;
      if (doc.defaultView.getComputedStyle(curr, '').getPropertyValue('direction') == 'rtl') {
        left += curr.scrollWidth - curr.clientWidth;
      }
      curr = curr.parentNode;
    }
  }
  while (elem) {
    left += elem.offsetLeft;
    var parent_0 = elem.offsetParent;
    if (parent_0 && $wnd.devicePixelRatio) {
      left += parseInt(doc.defaultView.getComputedStyle(parent_0, '').getPropertyValue('border-left-width'));
    }
    if (parent_0 && (parent_0.tagName == 'BODY' && elem.style.position == 'absolute')) {
      break;
    }
    elem = parent_0;
  }
  return left;
}

function $getAbsoluteTop(elem){
  if (elem.offsetTop == null) {
    return 0;
  }
  var top_0 = 0;
  var doc = elem.ownerDocument;
  var curr = elem.parentNode;
  if (curr) {
    while (curr.offsetParent) {
      top_0 -= curr.scrollTop;
      curr = curr.parentNode;
    }
  }
  while (elem) {
    top_0 += elem.offsetTop;
    var parent_0 = elem.offsetParent;
    if (parent_0 && $wnd.devicePixelRatio) {
      top_0 += parseInt(doc.defaultView.getComputedStyle(parent_0, '').getPropertyValue('border-top-width'));
    }
    if (parent_0 && (parent_0.tagName == 'BODY' && elem.style.position == 'absolute')) {
      break;
    }
    elem = parent_0;
  }
  return top_0;
}

function $isOrHasChild(parent_0, child){
  while (child) {
    if (parent_0 == child) {
      return true;
    }
    child = child.parentNode;
    if (child && child.nodeType != 1) {
      child = null;
    }
  }
  return false;
}

function DOMImplSafari(){
}

_ = DOMImplSafari.prototype = new DOMImplStandard();
_.typeId$ = 0;
function $getBodyOffsetLeft_0(){
  return $getBodyOffsetLeft($clinit_11());
}

function $getBodyOffsetTop_0(){
  return $getBodyOffsetTop($clinit_11());
}

function $getClientHeight(this$static){
  return ($equals_0(this$static.compatMode, 'CSS1Compat')?this$static.documentElement:this$static.body).clientHeight;
}

function $getClientWidth(this$static){
  return ($equals_0(this$static.compatMode, 'CSS1Compat')?this$static.documentElement:this$static.body).clientWidth;
}

function $getPropertyString(this$static, name_0){
  return this$static[name_0] == null?null:String(this$static[name_0]);
}

function is(o){
  if (o.nodeType) {
    return o.nodeType == 1;
  }
  return false;
}

function revive(){
  this.dead = false;
  this.source = null;
}

function GwtEvent(){
}

_ = GwtEvent.prototype = new Object_0();
_.revive = revive;
_.typeId$ = 0;
_.dead = false;
_.source = null;
function fireNativeEvent(nativeEvent, handlerSource, relativeElem){
  var currentNative, currentRelativeElem, typeKey;
  if (registered) {
    typeKey = dynamicCast(registered.map[($clinit_11() , nativeEvent).type], 3);
    if (typeKey) {
      currentNative = typeKey.flyweight.nativeEvent;
      currentRelativeElem = typeKey.flyweight.relativeElem;
      typeKey.flyweight.nativeEvent = nativeEvent;
      typeKey.flyweight.relativeElem = relativeElem;
      $fireEvent_1(handlerSource, typeKey.flyweight);
      typeKey.flyweight.nativeEvent = currentNative;
      typeKey.flyweight.relativeElem = currentRelativeElem;
    }
  }
}

function DomEvent(){
}

_ = DomEvent.prototype = new GwtEvent();
_.typeId$ = 0;
_.nativeEvent = null;
_.relativeElem = null;
var registered = null;
function $clinit_17(){
  $clinit_17 = nullMethod;
  TYPE = $DomEvent$Type(new DomEvent$Type(), 'click', ($clinit_17() , new ClickEvent()));
}

function dispatch(handler){
  handler.onClick(this);
}

function getAssociatedType(){
  return TYPE;
}

function ClickEvent(){
}

_ = ClickEvent.prototype = new DomEvent();
_.dispatch = dispatch;
_.getAssociatedType = getAssociatedType;
_.typeId$ = 0;
var TYPE;
function $GwtEvent$Type(this$static){
  this$static.index_0 = ++nextHashCode;
  return this$static;
}

function hashCode_1(){
  return this.index_0;
}

function GwtEvent$Type(){
}

_ = GwtEvent$Type.prototype = new Object_0();
_.hashCode$ = hashCode_1;
_.typeId$ = 0;
_.index_0 = 0;
var nextHashCode = 0;
function $DomEvent$Type(this$static, eventName, flyweight){
  this$static.index_0 = ++nextHashCode;
  this$static.flyweight = flyweight;
  if (!registered) {
    registered = $PrivateMap(new PrivateMap());
  }
  registered.map[eventName] = this$static;
  this$static.name_0 = eventName;
  return this$static;
}

function DomEvent$Type(){
}

_ = DomEvent$Type.prototype = new GwtEvent$Type();
_.typeId$ = 10;
_.flyweight = null;
_.name_0 = null;
function KeyEvent(){
}

_ = KeyEvent.prototype = new DomEvent();
_.typeId$ = 0;
function KeyCodeEvent(){
}

_ = KeyCodeEvent.prototype = new KeyEvent();
_.typeId$ = 0;
function $clinit_40(){
  $clinit_40 = nullMethod;
  TYPE_0 = $DomEvent$Type(new DomEvent$Type(), 'keyup', ($clinit_40() , new KeyUpEvent()));
}

function dispatch_0(handler){
  $onKeyUp(handler, this);
}

function getAssociatedType_0(){
  return TYPE_0;
}

function KeyUpEvent(){
}

_ = KeyUpEvent.prototype = new KeyCodeEvent();
_.dispatch = dispatch_0;
_.getAssociatedType = getAssociatedType_0;
_.typeId$ = 0;
var TYPE_0;
function $getX(this$static){
  var relativeElem, e;
  relativeElem = this$static.relativeElem;
  if (relativeElem) {
    return e = this$static.nativeEvent , (($clinit_11() , e).clientX || 0) - $getAbsoluteLeft(relativeElem) + (relativeElem.scrollLeft || 0) + (relativeElem.ownerDocument.body.scrollLeft || 0);
  }
  return ($clinit_11() , this$static.nativeEvent).clientX || 0;
}

function $getY(this$static){
  var relativeElem, e;
  relativeElem = this$static.relativeElem;
  if (relativeElem) {
    return e = this$static.nativeEvent , (($clinit_11() , e).clientY || 0) - $getAbsoluteTop(relativeElem) + (relativeElem.scrollTop || 0) + (relativeElem.ownerDocument.body.scrollTop || 0);
  }
  return ($clinit_11() , this$static.nativeEvent).clientY || 0;
}

function MouseEvent(){
}

_ = MouseEvent.prototype = new DomEvent();
_.typeId$ = 0;
function $clinit_42(){
  $clinit_42 = nullMethod;
  TYPE_1 = $DomEvent$Type(new DomEvent$Type(), 'mousedown', ($clinit_42() , new MouseDownEvent()));
}

function dispatch_1(handler){
  $onMouseDown(handler.this$0, $getX(this), $getY(this));
}

function getAssociatedType_1(){
  return TYPE_1;
}

function MouseDownEvent(){
}

_ = MouseDownEvent.prototype = new MouseEvent();
_.dispatch = dispatch_1;
_.getAssociatedType = getAssociatedType_1;
_.typeId$ = 0;
var TYPE_1;
function $clinit_45(){
  $clinit_45 = nullMethod;
  TYPE_2 = $DomEvent$Type(new DomEvent$Type(), 'mousemove', ($clinit_45() , new MouseMoveEvent()));
}

function dispatch_2(handler){
  $onMouseMove(handler.this$0, $getX(this), $getY(this));
}

function getAssociatedType_2(){
  return TYPE_2;
}

function MouseMoveEvent(){
}

_ = MouseMoveEvent.prototype = new MouseEvent();
_.dispatch = dispatch_2;
_.getAssociatedType = getAssociatedType_2;
_.typeId$ = 0;
var TYPE_2;
function $clinit_47(){
  $clinit_47 = nullMethod;
  TYPE_3 = $DomEvent$Type(new DomEvent$Type(), 'mouseout', ($clinit_47() , new MouseOutEvent()));
}

function dispatch_3(handler){
}

function getAssociatedType_3(){
  return TYPE_3;
}

function MouseOutEvent(){
}

_ = MouseOutEvent.prototype = new MouseEvent();
_.dispatch = dispatch_3;
_.getAssociatedType = getAssociatedType_3;
_.typeId$ = 0;
var TYPE_3;
function $clinit_49(){
  $clinit_49 = nullMethod;
  TYPE_4 = $DomEvent$Type(new DomEvent$Type(), 'mouseover', ($clinit_49() , new MouseOverEvent()));
}

function dispatch_4(handler){
}

function getAssociatedType_4(){
  return TYPE_4;
}

function MouseOverEvent(){
}

_ = MouseOverEvent.prototype = new MouseEvent();
_.dispatch = dispatch_4;
_.getAssociatedType = getAssociatedType_4;
_.typeId$ = 0;
var TYPE_4;
function $clinit_51(){
  $clinit_51 = nullMethod;
  TYPE_5 = $DomEvent$Type(new DomEvent$Type(), 'mouseup', ($clinit_51() , new MouseUpEvent()));
}

function dispatch_5(handler){
  $onMouseUp(handler.this$0, ($getX(this) , $getY(this)));
}

function getAssociatedType_5(){
  return TYPE_5;
}

function MouseUpEvent(){
}

_ = MouseUpEvent.prototype = new MouseEvent();
_.dispatch = dispatch_5;
_.getAssociatedType = getAssociatedType_5;
_.typeId$ = 0;
var TYPE_5;
function $PrivateMap(this$static){
  this$static.map = {};
  return this$static;
}

function PrivateMap(){
}

_ = PrivateMap.prototype = new Object_0();
_.typeId$ = 0;
_.map = null;
function dispatch_6(handler){
  handler.onClose(this);
}

function fire(source){
  var event_0;
  if (TYPE_6) {
    event_0 = new CloseEvent();
    source.fireEvent(event_0);
  }
}

function getAssociatedType_6(){
  return TYPE_6;
}

function CloseEvent(){
}

_ = CloseEvent.prototype = new GwtEvent();
_.dispatch = dispatch_6;
_.getAssociatedType = getAssociatedType_6;
_.typeId$ = 0;
var TYPE_6 = null;
function $ResizeEvent(this$static, width){
  this$static.width = width;
  return this$static;
}

function dispatch_7(handler){
  handler.this$0.windowWidth = this.width;
}

function fire_0(source, width){
  var event_0;
  if (TYPE_7) {
    event_0 = $ResizeEvent(new ResizeEvent(), width);
    $fireEvent_0(source, event_0);
  }
}

function getAssociatedType_7(){
  return TYPE_7;
}

function getType(){
  if (!TYPE_7) {
    TYPE_7 = $GwtEvent$Type(new GwtEvent$Type());
  }
  return TYPE_7;
}

function ResizeEvent(){
}

_ = ResizeEvent.prototype = new GwtEvent();
_.dispatch = dispatch_7;
_.getAssociatedType = getAssociatedType_7;
_.typeId$ = 0;
_.width = 0;
var TYPE_7 = null;
function $DefaultHandlerRegistration(this$static, manager, type, handler){
  this$static.manager = manager;
  this$static.handler = handler;
  this$static.type_0 = type;
  return this$static;
}

function $removeHandler(this$static){
  $removeHandler_1(this$static.manager, this$static.type_0, this$static.handler);
}

function DefaultHandlerRegistration(){
}

_ = DefaultHandlerRegistration.prototype = new Object_0();
_.typeId$ = 0;
_.handler = null;
_.manager = null;
_.type_0 = null;
function $HandlerManager(this$static, source){
  this$static.registry = $HandlerManager$HandlerRegistry(new HandlerManager$HandlerRegistry());
  this$static.source = source;
  this$static.isReverseOrder = false;
  return this$static;
}

function $HandlerManager_0(this$static, source, fireInReverseOrder){
  this$static.registry = $HandlerManager$HandlerRegistry(new HandlerManager$HandlerRegistry());
  this$static.source = source;
  this$static.isReverseOrder = fireInReverseOrder;
  return this$static;
}

function $addHandler_0(this$static, type, handler){
  if (this$static.firingDepth > 0) {
    $defer(this$static, $HandlerManager$1(new HandlerManager$1(), this$static, type, handler));
  }
   else {
    $addHandler(this$static.registry, type, handler);
  }
  return $DefaultHandlerRegistration(new DefaultHandlerRegistration(), this$static, type, handler);
}

function $defer(this$static, command){
  if (!this$static.deferredDeltas) {
    this$static.deferredDeltas = $ArrayList(new ArrayList());
  }
  $add_4(this$static.deferredDeltas, command);
}

function $fireEvent_0(this$static, event_0){
  var oldSource;
  if (event_0.dead) {
    event_0.revive();
  }
  oldSource = event_0.source;
  event_0.source = this$static.source;
  try {
    ++this$static.firingDepth;
    $fireEvent(this$static.registry, event_0, this$static.isReverseOrder);
  }
   finally {
    --this$static.firingDepth;
    if (this$static.firingDepth == 0) {
      $handleQueuedAddsAndRemoves(this$static);
    }
  }
  if (oldSource == null) {
    event_0.dead = true;
    event_0.source = null;
  }
   else {
    event_0.source = oldSource;
  }
}

function $handleQueuedAddsAndRemoves(this$static){
  var c, c$iterator;
  if (this$static.deferredDeltas) {
    try {
      for (c$iterator = $AbstractList$IteratorImpl(new AbstractList$IteratorImpl(), this$static.deferredDeltas); c$iterator.i < c$iterator.this$0.size;) {
        c = dynamicCast($next_1(c$iterator), 4);
        c.execute();
      }
    }
     finally {
      this$static.deferredDeltas = null;
    }
  }
}

function $removeHandler_1(this$static, type, handler){
  if (this$static.firingDepth > 0) {
    $defer(this$static, $HandlerManager$2(new HandlerManager$2(), this$static, type, handler));
  }
   else {
    $removeHandler_0(this$static.registry, type, handler);
  }
}

function fireEvent(event_0){
  $fireEvent_0(this, event_0);
}

function HandlerManager(){
}

_ = HandlerManager.prototype = new Object_0();
_.fireEvent = fireEvent;
_.typeId$ = 0;
_.deferredDeltas = null;
_.firingDepth = 0;
_.isReverseOrder = false;
_.registry = null;
_.source = null;
function $HandlerManager$1(this$static, this$0, val$type, val$handler){
  this$static.this$0 = this$0;
  this$static.val$type = val$type;
  this$static.val$handler = val$handler;
  return this$static;
}

function execute(){
  $addHandler(this.this$0.registry, this.val$type, this.val$handler);
}

function HandlerManager$1(){
}

_ = HandlerManager$1.prototype = new Object_0();
_.execute = execute;
_.typeId$ = 11;
_.this$0 = null;
_.val$handler = null;
_.val$type = null;
function $HandlerManager$2(this$static, this$0, val$type, val$handler){
  this$static.this$0 = this$0;
  this$static.val$type = val$type;
  this$static.val$handler = val$handler;
  return this$static;
}

function execute_0(){
  $removeHandler_0(this.this$0.registry, this.val$type, this.val$handler);
}

function HandlerManager$2(){
}

_ = HandlerManager$2.prototype = new Object_0();
_.execute = execute_0;
_.typeId$ = 12;
_.this$0 = null;
_.val$handler = null;
_.val$type = null;
function $HandlerManager$HandlerRegistry(this$static){
  this$static.map = $HashMap(new HashMap());
  return this$static;
}

function $addHandler(this$static, type, handler){
  var l;
  l = dynamicCast($get(this$static.map, type), 5);
  if (!l) {
    l = $ArrayList(new ArrayList());
    $put(this$static.map, type, l);
  }
  setCheck(l.array, l.size++, handler);
}

function $fireEvent(this$static, event_0, isReverseOrder){
  var count, handler, i, type, l, l_0, l_1;
  type = event_0.getAssociatedType();
  count = (l = dynamicCast($get(this$static.map, type), 5) , !l?0:l.size);
  if (isReverseOrder) {
    for (i = count - 1; i >= 0; --i) {
      handler = (l_0 = dynamicCast($get(this$static.map, type), 5) , dynamicCast((checkIndex(i, l_0.size) , l_0.array[i]), 17));
      event_0.dispatch(handler);
    }
  }
   else {
    for (i = 0; i < count; ++i) {
      handler = (l_1 = dynamicCast($get(this$static.map, type), 5) , dynamicCast((checkIndex(i, l_1.size) , l_1.array[i]), 17));
      event_0.dispatch(handler);
    }
  }
}

function $removeHandler_0(this$static, eventKey, handler){
  var l;
  l = dynamicCast($get(this$static.map, eventKey), 5);
  $remove_9(l, handler);
  if (l.size == 0) {
    $remove_6(this$static.map, eventKey);
  }
}

function HandlerManager$HandlerRegistry(){
}

_ = HandlerManager$HandlerRegistry.prototype = new Object_0();
_.typeId$ = 0;
function $Request(this$static, xmlHttpRequest, timeoutMillis, callback){
  if (!xmlHttpRequest) {
    throw new NullPointerException();
  }
  if (!callback) {
    throw new NullPointerException();
  }
  if (timeoutMillis < 0) {
    throw new IllegalArgumentException();
  }
  this$static.timeoutMillis = timeoutMillis;
  this$static.xmlHttpRequest = xmlHttpRequest;
  if (timeoutMillis > 0) {
    this$static.timer = $Request$2(new Request$2(), this$static, callback);
    $schedule(this$static.timer, timeoutMillis);
  }
   else {
    this$static.timer = null;
  }
  return this$static;
}

function $cancel_0(this$static){
  var xmlHttp;
  if (this$static.xmlHttpRequest) {
    xmlHttp = this$static.xmlHttpRequest;
    this$static.xmlHttpRequest = null;
    xmlHttp.onreadystatechange = nullFunc;
    xmlHttp.abort();
    $cancelTimer(this$static);
  }
}

function $cancelTimer(this$static){
  if (this$static.timer) {
    $cancel_1(this$static.timer);
  }
}

function $fireOnResponseReceivedImpl(this$static, callback){
  var errorMsg, response_0, xmlHttp, response;
  if (!this$static.xmlHttpRequest) {
    return;
  }
  $cancelTimer(this$static);
  xmlHttp = this$static.xmlHttpRequest;
  this$static.xmlHttpRequest = null;
  errorMsg = getBrowserSpecificFailure(xmlHttp);
  if (errorMsg != null) {
    $RuntimeException(new RuntimeException(), errorMsg);
    $onFailure(callback.callback);
  }
   else {
    response_0 = (response = $Request$1(new Request$1(), xmlHttp) , response);
    $onResponseReceived(callback, response_0);
  }
}

function $fireOnTimeout(this$static, callback){
  if (!this$static.xmlHttpRequest) {
    return;
  }
  $cancel_0(this$static);
  $onError(callback, $RequestTimeoutException(new RequestTimeoutException(), this$static.timeoutMillis));
}

function fireOnResponseReceived(callback){
  $fireOnResponseReceivedImpl(this, callback);
}

function Request(){
}

_ = Request.prototype = new Object_0();
_.fireOnResponseReceived = fireOnResponseReceived;
_.typeId$ = 0;
_.timeoutMillis = 0;
_.timer = null;
_.xmlHttpRequest = null;
function Response(){
}

_ = Response.prototype = new Object_0();
_.typeId$ = 0;
function $Request$1(this$static, val$xmlHttpRequest){
  this$static.val$xmlHttpRequest = val$xmlHttpRequest;
  return this$static;
}

function Request$1(){
}

_ = Request$1.prototype = new Response();
_.typeId$ = 0;
_.val$xmlHttpRequest = null;
function $clinit_74(){
  $clinit_74 = nullMethod;
  $clinit_108();
}

function $Request$2(this$static, this$0, val$callback){
  $clinit_74();
  this$static.this$0 = this$0;
  this$static.val$callback = val$callback;
  return this$static;
}

function run_0(){
  $fireOnTimeout(this.this$0, this.val$callback);
}

function Request$2(){
}

_ = Request$2.prototype = new Timer();
_.run = run_0;
_.typeId$ = 13;
_.this$0 = null;
_.val$callback = null;
function $clinit_76(){
  $clinit_76 = nullMethod;
  $RequestBuilder$Method(new RequestBuilder$Method(), 'GET');
  POST = $RequestBuilder$Method(new RequestBuilder$Method(), 'POST');
  nullFunc = createFunction();
}

function $RequestBuilder(this$static, httpMethod, url){
  $clinit_76();
  $RequestBuilder_0(this$static, !httpMethod?null:httpMethod.name_0, url);
  return this$static;
}

function $RequestBuilder_0(this$static, httpMethod, url){
  $clinit_76();
  throwIfEmptyOrNull('httpMethod', httpMethod);
  throwIfEmptyOrNull('url', url);
  this$static.httpMethod = httpMethod;
  this$static.url = url;
  return this$static;
}

function $doSend(this$static, requestData, callback){
  var openError, request, requestPermissionException, sendError, xmlHttpRequest;
  xmlHttpRequest = new XMLHttpRequest();
  openError = open_0(xmlHttpRequest, this$static.httpMethod, this$static.url, true);
  if (openError != null) {
    requestPermissionException = $RequestPermissionException(new RequestPermissionException(), this$static.url);
    $initCause(requestPermissionException, $RequestException(new RequestException(), openError));
    throw requestPermissionException;
  }
  $setHeaders(this$static, xmlHttpRequest);
  request = $Request(new Request(), xmlHttpRequest, this$static.timeoutMillis, callback);
  sendError = send(xmlHttpRequest, request, requestData, callback);
  if (sendError != null) {
    throw $RequestException(new RequestException(), sendError);
  }
  return request;
}

function $setHeader(this$static, header, value){
  throwIfEmptyOrNull('header', header);
  throwIfEmptyOrNull('value', value);
  if (!this$static.headers) {
    this$static.headers = $HashMap(new HashMap());
  }
  $put(this$static.headers, header, value);
}

function $setHeaders(this$static, xmlHttpRequest){
  var errorMessage, header, header$iterator;
  if (!!this$static.headers && this$static.headers.size > 0) {
    for (header$iterator = $AbstractHashMap$EntrySetIterator(new AbstractHashMap$EntrySetIterator(), $AbstractHashMap$EntrySet(new AbstractHashMap$EntrySet(), this$static.headers).this$0); $hasNext_0(header$iterator.iter);) {
      header = header$iterator.last = dynamicCast($next_1(header$iterator.iter), 18);
      errorMessage = setRequestHeader(xmlHttpRequest, dynamicCast(header.getKey(), 1), dynamicCast(header.getValue(), 1));
      if (errorMessage != null) {
        throw $RequestException(new RequestException(), errorMessage);
      }
    }
  }
   else {
    setRequestHeader(xmlHttpRequest, 'Content-Type', 'text/plain; charset=utf-8');
  }
}

function RequestBuilder(){
}

_ = RequestBuilder.prototype = new Object_0();
_.typeId$ = 0;
_.callback = null;
_.headers = null;
_.httpMethod = null;
_.requestData = null;
_.timeoutMillis = 0;
_.url = null;
var POST;
function $RequestBuilder$Method(this$static, name_0){
  this$static.name_0 = name_0;
  return this$static;
}

function RequestBuilder$Method(){
}

_ = RequestBuilder$Method.prototype = new Object_0();
_.typeId$ = 0;
_.name_0 = null;
function $RequestException(this$static, message){
  this$static.detailMessage = message;
  return this$static;
}

function RequestException(){
}

_ = RequestException.prototype = new Exception();
_.typeId$ = 14;
function $RequestPermissionException(this$static, url){
  this$static.detailMessage = 'The URL ' + url + ' is invalid or violates the same-origin security restriction';
  return this$static;
}

function RequestPermissionException(){
}

_ = RequestPermissionException.prototype = new RequestException();
_.typeId$ = 15;
function $RequestTimeoutException(this$static, timeoutMillis){
  this$static.detailMessage = 'A request timeout has expired after ' + ('' + timeoutMillis) + ' ms';
  return this$static;
}

function RequestTimeoutException(){
}

_ = RequestTimeoutException.prototype = new RequestException();
_.typeId$ = 16;
function throwIfEmptyOrNull(name_0, value){
  throwIfNull(name_0, value);
  if (0 == $trim(value).length) {
    throw $IllegalArgumentException(new IllegalArgumentException(), name_0 + ' cannot be empty');
  }
}

function throwIfNull(name_0, value){
  if (null == value) {
    throw $NullPointerException(new NullPointerException(), name_0 + ' cannot be null');
  }
}

function getBrowserSpecificFailure(xmlHttpRequest){
  try {
    if (xmlHttpRequest.status === undefined) {
      return 'XmlHttpRequest.status == undefined, please see Safari bug ' + 'http://bugs.webkit.org/show_bug.cgi?id=3810 for more details';
    }
    return null;
  }
   catch (e) {
    return 'Unable to read XmlHttpRequest.status; likely causes are a ' + 'networking error or bad cross-domain request. Please see ' + 'https://bugzilla.mozilla.org/show_bug.cgi?id=238559 for more ' + 'details';
  }
}

function open_0(xmlHttpRequest, httpMethod, url, async){
  try {
    xmlHttpRequest.open(httpMethod, url, async);
    return null;
  }
   catch (e) {
    return e.message || e.toString();
  }
}

function send(xmlHttpRequest, httpRequest, requestData, callback){
  xmlHttpRequest.onreadystatechange = function(){
    if (xmlHttpRequest.readyState == 4) {
      $wnd.setTimeout(function(){
        xmlHttpRequest.onreadystatechange = nullFunc;
      }
      , 0);
      httpRequest.fireOnResponseReceived(callback);
    }
  }
  ;
  try {
    xmlHttpRequest.send(requestData);
    return null;
  }
   catch (e) {
    xmlHttpRequest.onreadystatechange = nullFunc;
    return e.message || e.toString();
  }
}

function setRequestHeader(xmlHttpRequest, header, value){
  try {
    xmlHttpRequest.setRequestHeader(header, value);
    return null;
  }
   catch (e) {
    return e.message || e.toString();
  }
}

function createFromSeed(seedType, length_0){
  var array = new Array(length_0);
  if (seedType > 0) {
    var value = [null, 0, false, [0, 0]][seedType];
    for (var i = 0; i < length_0; ++i) {
      array[i] = value;
    }
  }
  return array;
}

function initDim(arrayClass, typeId, queryId, length_0, seedType){
  var result;
  result = createFromSeed(seedType, length_0);
  $clinit_86();
  wrapArray(result, expandoNames_0, expandoValues_0);
  result.arrayClass$ = arrayClass;
  result.typeId$ = typeId;
  result.queryId$ = queryId;
  return result;
}

function initValues(arrayClass, typeId, queryId, array){
  $clinit_86();
  wrapArray(array, expandoNames_0, expandoValues_0);
  array.arrayClass$ = arrayClass;
  array.typeId$ = typeId;
  array.queryId$ = queryId;
  return array;
}

function setCheck(array, index, value){
  if (value != null) {
    if (array.queryId$ > 0 && !canCastUnsafe(value.typeId$, array.queryId$)) {
      throw new ArrayStoreException();
    }
    if (array.queryId$ < 0 && (value.typeMarker$ == nullMethod || value.typeId$ == 2)) {
      throw new ArrayStoreException();
    }
  }
  return array[index] = value;
}

function Array_0(){
}

_ = Array_0.prototype = new Object_0();
_.typeId$ = 0;
_.arrayClass$ = null;
_.length = 0;
_.queryId$ = 0;
function $clinit_86(){
  $clinit_86 = nullMethod;
  expandoNames_0 = [];
  expandoValues_0 = [];
  initExpandos(new Array_0(), expandoNames_0, expandoValues_0);
}

function initExpandos(protoType, expandoNames, expandoValues){
  var i = 0, value;
  for (var name_0 in protoType) {
    if (value = protoType[name_0]) {
      expandoNames[i] = name_0;
      expandoValues[i] = value;
      ++i;
    }
  }
}

function wrapArray(array, expandoNames, expandoValues){
  $clinit_86();
  for (var i = 0, c = expandoNames.length; i < c; ++i) {
    array[expandoNames[i]] = expandoValues[i];
  }
}

var expandoNames_0, expandoValues_0;
function canCast(srcId, dstId){
  return srcId && !!typeIdArray[srcId][dstId];
}

function canCastUnsafe(srcId, dstId){
  return srcId && typeIdArray[srcId][dstId];
}

function dynamicCast(src, dstId){
  if (src != null && !canCastUnsafe(src.typeId$, dstId)) {
    throw new ClassCastException();
  }
  return src;
}

function instanceOf(src, dstId){
  return src != null && canCast(src.typeId$, dstId);
}

function maskUndefined(src){
  return src == null?null:src;
}

var typeIdArray = [{}, {}, {1:1, 11:1, 12:1, 13:1}, {6:1}, {21:1}, {21:1}, {11:1, 19:1}, {11:1, 19:1}, {11:1, 19:1}, {11:1, 19:1}, {3:1}, {4:1}, {4:1}, {21:1}, {11:1, 19:1, 22:1}, {11:1, 19:1, 22:1}, {11:1, 19:1, 22:1}, {11:1, 19:1}, {21:1}, {21:1}, {17:1}, {7:1}, {11:1, 19:1}, {11:1, 19:1}, {11:1, 19:1, 23:1}, {11:1, 19:1}, {11:1, 19:1}, {11:1, 13:1}, {11:1, 13:1}, {11:1, 13:1}, {11:1, 13:1}, {11:1, 13:1}, {11:1, 13:1}, {11:1, 13:1}, {11:1, 13:1}, {11:1, 13:1}, {11:1, 13:1}, {11:1, 13:1}, {11:1, 13:1}, {11:1, 13:1}, {9:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {17:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {17:1}, {17:1}, {11:1, 13:1}, {6:1}, {20:1}, {7:1, 8:1, 9:1, 10:1, 24:1}, {17:1}, {7:1, 8:1, 9:1, 10:1, 24:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {7:1, 8:1, 9:1, 10:1}, {11:1, 19:1}, {11:1, 19:1}, {11:1, 19:1}, {11:1, 19:1}, {11:1, 19:1}, {11:1, 15:1}, {11:1, 19:1}, {11:1, 19:1}, {11:1, 19:1}, {11:1, 13:1, 14:1, 15:1}, {11:1, 19:1}, {12:1}, {11:1, 19:1}, {25:1}, {25:1}, {26:1}, {26:1}, {18:1}, {18:1}, {18:1}, {26:1}, {5:1, 11:1}, {11:1, 25:1}, {11:1, 26:1}, {11:1, 25:1}, {18:1}, {11:1, 19:1}, {17:1}, {17:1}, {2:1}, {16:1}];
function caught_0(e){
  if (e != null && canCast(e.typeId$, 19)) {
    return e;
  }
  return $JavaScriptException(new JavaScriptException(), e);
}

function $CommandCanceledException(this$static){
  return this$static;
}

function CommandCanceledException(){
}

_ = CommandCanceledException.prototype = new RuntimeException();
_.typeId$ = 17;
function $CommandExecutor(this$static){
  this$static.cancellationTimer = $CommandExecutor$1(new CommandExecutor$1(), this$static);
  this$static.commands = $ArrayList(new ArrayList());
  this$static.executionTimer = $CommandExecutor$2(new CommandExecutor$2(), this$static);
  this$static.iterator = $CommandExecutor$CircularIterator(new CommandExecutor$CircularIterator(), this$static);
  return this$static;
}

function $doCommandCanceled(this$static){
  var cmd;
  cmd = $getLast(this$static.iterator);
  $remove(this$static.iterator);
  if (cmd != null && canCast(cmd.typeId$, 20)) {
    $CommandCanceledException(new CommandCanceledException(), dynamicCast(cmd, 20));
  }
   else {
  }
  this$static.executing = false;
  $maybeStartExecutionTimer(this$static);
}

function $doExecuteCommands(this$static, startTimeMillis){
  var command, element, wasCanceled;
  wasCanceled = false;
  try {
    this$static.executing = true;
    this$static.iterator.end = this$static.commands.size;
    $schedule(this$static.cancellationTimer, 10000);
    while ($hasNext(this$static.iterator)) {
      element = $next(this$static.iterator);
      try {
        if (element == null) {
          return;
        }
        if (element != null && canCast(element.typeId$, 20)) {
          command = dynamicCast(element, 20);
          $run(command.this$1, 200, (new Date()).getTime());
        }
         else {
        }
      }
       finally {
        wasCanceled = this$static.iterator.last == -1;
        if (wasCanceled) {
          return;
        }
        $remove(this$static.iterator);
      }
      if ((new Date()).getTime() - startTimeMillis >= 100) {
        return;
      }
    }
  }
   finally {
    if (!wasCanceled) {
      $cancel_1(this$static.cancellationTimer);
      this$static.executing = false;
      $maybeStartExecutionTimer(this$static);
    }
  }
}

function $maybeStartExecutionTimer(this$static){
  if (this$static.commands.size != 0 && !this$static.executionTimerPending && !this$static.executing) {
    this$static.executionTimerPending = true;
    $schedule(this$static.executionTimer, 1);
  }
}

function $submit(this$static, command){
  $add_4(this$static.commands, command);
  $maybeStartExecutionTimer(this$static);
}

function CommandExecutor(){
}

_ = CommandExecutor.prototype = new Object_0();
_.typeId$ = 0;
_.executing = false;
_.executionTimerPending = false;
function $clinit_95(){
  $clinit_95 = nullMethod;
  $clinit_108();
}

function $CommandExecutor$1(this$static, this$0){
  $clinit_95();
  this$static.this$0 = this$0;
  return this$static;
}

function run_1(){
  if (!this.this$0.executing) {
    return;
  }
  $doCommandCanceled(this.this$0);
}

function CommandExecutor$1(){
}

_ = CommandExecutor$1.prototype = new Timer();
_.run = run_1;
_.typeId$ = 18;
_.this$0 = null;
function $clinit_96(){
  $clinit_96 = nullMethod;
  $clinit_108();
}

function $CommandExecutor$2(this$static, this$0){
  $clinit_96();
  this$static.this$0 = this$0;
  return this$static;
}

function run_2(){
  this.this$0.executionTimerPending = false;
  $doExecuteCommands(this.this$0, (new Date()).getTime());
}

function CommandExecutor$2(){
}

_ = CommandExecutor$2.prototype = new Timer();
_.run = run_2;
_.typeId$ = 19;
_.this$0 = null;
function $CommandExecutor$CircularIterator(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function $getLast(this$static){
  return $get_0(this$static.this$0.commands, this$static.last);
}

function $hasNext(this$static){
  return this$static.next < this$static.end;
}

function $next(this$static){
  var command;
  this$static.last = this$static.next;
  command = $get_0(this$static.this$0.commands, this$static.next++);
  if (this$static.next >= this$static.end) {
    this$static.next = 0;
  }
  return command;
}

function $remove(this$static){
  $remove_8(this$static.this$0.commands, this$static.last);
  --this$static.end;
  if (this$static.last <= this$static.next) {
    if (--this$static.next < 0) {
      this$static.next = 0;
    }
  }
  this$static.last = -1;
}

function hasNext(){
  return this.next < this.end;
}

function next_0(){
  return $next(this);
}

function CommandExecutor$CircularIterator(){
}

_ = CommandExecutor$CircularIterator.prototype = new Object_0();
_.hasNext = hasNext;
_.next_0 = next_0;
_.typeId$ = 0;
_.end = 0;
_.last = -1;
_.next = 0;
_.this$0 = null;
function dispatchEventImpl(evt, elem, listener){
  var prevCurrentEvent;
  if (elem == sCaptureElem) {
    if ($eventGetTypeInt(($clinit_11() , evt).type) == 8192) {
      sCaptureElem = null;
    }
  }
  prevCurrentEvent = currentEvent;
  currentEvent = evt;
  try {
    listener.onBrowserEvent(evt);
  }
   finally {
    currentEvent = prevCurrentEvent;
  }
}

function previewEvent(evt){
  var ret;
  ret = fire_1(handlers_0, evt);
  if (!ret && !!evt) {
    evt.cancelBubble = true;
    ($clinit_11() , evt).preventDefault();
  }
  return ret;
}

function releaseCapture(elem){
  if (!!sCaptureElem && elem == sCaptureElem) {
    sCaptureElem = null;
  }
  $maybeInitializeEventSystem();
  $releaseCaptureImpl(elem);
}

function setCapture(elem){
  sCaptureElem = elem;
  $maybeInitializeEventSystem();
  captureElem = elem;
}

function sinkEvents(elem, eventBits){
  $maybeInitializeEventSystem();
  $sinkEventsImpl(elem, eventBits);
}

var currentEvent = null, sCaptureElem = null;
function $clinit_101(){
  $clinit_101 = nullMethod;
  commandExecutor = $CommandExecutor(new CommandExecutor());
}

function addCommand(cmd){
  $clinit_101();
  if (!cmd) {
    throw $NullPointerException(new NullPointerException(), 'cmd cannot be null');
  }
  $submit(commandExecutor, cmd);
}

var commandExecutor;
function addNativePreviewHandler(handler){
  $maybeInitializeEventSystem();
  getType_0();
  if (!handlers_0) {
    handlers_0 = $HandlerManager_0(new HandlerManager(), null, true);
    singleton = new Event$NativePreviewEvent();
  }
  return $addHandler_0(handlers_0, TYPE_8, handler);
}

var handlers_0 = null;
function $revive(this$static){
  this$static.dead = false;
  this$static.source = null;
  this$static.isCanceled = false;
  this$static.isConsumed = false;
  this$static.nativeEvent = null;
}

function dispatch_8(handler){
  $previewNativeEvent(handler.this$0, this);
}

function fire_1(handlers, nativeEvent){
  if (!!TYPE_8 && !!handlers && $containsKey(handlers.registry.map, TYPE_8)) {
    $revive(singleton);
    singleton.nativeEvent = nativeEvent;
    $fireEvent_0(handlers, singleton);
    return !(singleton.isCanceled && !singleton.isConsumed);
  }
  return true;
}

function getAssociatedType_8(){
  return TYPE_8;
}

function getType_0(){
  if (!TYPE_8) {
    TYPE_8 = $GwtEvent$Type(new GwtEvent$Type());
  }
  return TYPE_8;
}

function revive_0(){
  $revive(this);
}

function Event$NativePreviewEvent(){
}

_ = Event$NativePreviewEvent.prototype = new GwtEvent();
_.dispatch = dispatch_8;
_.getAssociatedType = getAssociatedType_8;
_.revive = revive_0;
_.typeId$ = 0;
_.isCanceled = false;
_.isConsumed = false;
_.nativeEvent = null;
var TYPE_8 = null, singleton = null;
function onClose(event_0){
  while (($clinit_108() , timers).size > 0) {
    $cancel_1(dynamicCast($get_0(timers, 0), 21));
  }
}

function Timer$1(){
}

_ = Timer$1.prototype = new Object_0();
_.onClose = onClose;
_.typeId$ = 20;
function addCloseHandler(handler){
  maybeInitializeCloseHandlers();
  return addHandler(TYPE_6?TYPE_6:(TYPE_6 = $GwtEvent$Type(new GwtEvent$Type())), handler);
}

function addHandler(type, handler){
  return $addHandler_0(getHandlers(), type, handler);
}

function addResizeHandler(handler){
  maybeInitializeCloseHandlers();
  maybeInitializeResizeHandlers();
  return addHandler(getType(), handler);
}

function fireClosedImpl(){
  if (closeHandlersInitialized) {
    fire(getHandlers());
  }
}

function fireClosingImpl(){
  var event_0;
  if (closeHandlersInitialized) {
    event_0 = ($clinit_109() , new Window$ClosingEvent());
    fireEvent_0(event_0);
    return null;
  }
  return null;
}

function fireEvent_0(event_0){
  if (handlers_1) {
    $fireEvent_0(handlers_1, event_0);
  }
}

function fireResizedImpl(){
  var height, width;
  if (resizeHandlersInitialized) {
    width = $getClientWidth($doc);
    height = $getClientHeight($doc);
    if (lastResizeWidth != width || lastResizeHeight != height) {
      lastResizeWidth = width;
      lastResizeHeight = height;
      fire_0(getHandlers(), width);
    }
  }
}

function getHandlers(){
  if (!handlers_1) {
    handlers_1 = $Window$WindowHandlers(new Window$WindowHandlers());
  }
  return handlers_1;
}

function maybeInitializeCloseHandlers(){
  if (!closeHandlersInitialized) {
    $initWindowCloseHandler();
    closeHandlersInitialized = true;
  }
}

function maybeInitializeResizeHandlers(){
  if (!resizeHandlersInitialized) {
    $initWindowResizeHandler();
    resizeHandlersInitialized = true;
  }
}

var closeHandlersInitialized = false, handlers_1 = null, lastResizeHeight = 0, lastResizeWidth = 0, resizeHandlersInitialized = false;
function $clinit_109(){
  $clinit_109 = nullMethod;
  TYPE_9 = $GwtEvent$Type(new GwtEvent$Type());
}

function dispatch_9(handler){
  null.nullMethod();
}

function getAssociatedType_9(){
  return TYPE_9;
}

function Window$ClosingEvent(){
}

_ = Window$ClosingEvent.prototype = new GwtEvent();
_.dispatch = dispatch_9;
_.getAssociatedType = getAssociatedType_9;
_.typeId$ = 0;
var TYPE_9;
function $Window$WindowHandlers(this$static){
  this$static.registry = $HandlerManager$HandlerRegistry(new HandlerManager$HandlerRegistry());
  this$static.source = null;
  this$static.isReverseOrder = false;
  return this$static;
}

function Window$WindowHandlers(){
}

_ = Window$WindowHandlers.prototype = new HandlerManager();
_.typeId$ = 21;
function $eventGetTypeInt(eventType){
  switch (eventType) {
    case 'blur':
      return 4096;
    case 'change':
      return 1024;
    case 'click':
      return 1;
    case 'dblclick':
      return 2;
    case 'focus':
      return 2048;
    case 'keydown':
      return 128;
    case 'keypress':
      return 256;
    case 'keyup':
      return 512;
    case 'load':
      return 32768;
    case 'losecapture':
      return 8192;
    case 'mousedown':
      return 4;
    case 'mousemove':
      return 64;
    case 'mouseout':
      return 32;
    case 'mouseover':
      return 16;
    case 'mouseup':
      return 8;
    case 'scroll':
      return 16384;
    case 'error':
      return 65536;
    case 'mousewheel':
      return 131072;
    case 'DOMMouseScroll':
      return 131072;
    case 'contextmenu':
      return 262144;
  }
}

function $maybeInitializeEventSystem(){
  if (!eventSystemIsInitialized) {
    $initEventSystem();
    eventSystemIsInitialized = true;
  }
}

function isMyListener(object){
  return !(object != null && (object.typeMarker$ != nullMethod && object.typeId$ != 2)) && (object != null && canCast(object.typeId$, 8));
}

var eventSystemIsInitialized = false;
function $getChild(elem, index){
  var count = 0, child = elem.firstChild;
  while (child) {
    var next = child.nextSibling;
    if (child.nodeType == 1) {
      if (index == count)
        return child;
      ++count;
    }
    child = next;
  }
  return null;
}

function $initEventSystem(){
  dispatchCapturedMouseEvent = function(evt){
    if (dispatchCapturedEvent(evt)) {
      var cap = captureElem;
      if (cap && cap.__listener) {
        if (isMyListener(cap.__listener)) {
          dispatchEventImpl(evt, cap, cap.__listener);
          evt.stopPropagation();
        }
      }
    }
  }
  ;
  dispatchCapturedEvent = function(evt){
    if (!previewEvent(evt)) {
      evt.stopPropagation();
      evt.preventDefault();
      return false;
    }
    return true;
  }
  ;
  dispatchEvent_1 = function(evt){
    var listener, curElem = this;
    while (curElem && !(listener = curElem.__listener)) {
      curElem = curElem.parentNode;
    }
    if (curElem && curElem.nodeType != 1) {
      curElem = null;
    }
    if (listener) {
      if (isMyListener(listener)) {
        dispatchEventImpl(evt, curElem, listener);
      }
    }
  }
  ;
  $wnd.addEventListener('click', dispatchCapturedMouseEvent, true);
  $wnd.addEventListener('dblclick', dispatchCapturedMouseEvent, true);
  $wnd.addEventListener('mousedown', dispatchCapturedMouseEvent, true);
  $wnd.addEventListener('mouseup', dispatchCapturedMouseEvent, true);
  $wnd.addEventListener('mousemove', dispatchCapturedMouseEvent, true);
  $wnd.addEventListener('mouseover', dispatchCapturedMouseEvent, true);
  $wnd.addEventListener('mouseout', dispatchCapturedMouseEvent, true);
  $wnd.addEventListener('mousewheel', dispatchCapturedMouseEvent, true);
  $wnd.addEventListener('keydown', dispatchCapturedEvent, true);
  $wnd.addEventListener('keyup', dispatchCapturedEvent, true);
  $wnd.addEventListener('keypress', dispatchCapturedEvent, true);
}

function $releaseCaptureImpl(elem){
  if (elem === captureElem) {
    captureElem = null;
  }
}

function $sinkEventsImpl(elem, bits){
  var chMask = (elem.__eventBits || 0) ^ bits;
  elem.__eventBits = bits;
  if (!chMask)
    return;
  if (chMask & 1)
    elem.onclick = bits & 1?dispatchEvent_1:null;
  if (chMask & 2)
    elem.ondblclick = bits & 2?dispatchEvent_1:null;
  if (chMask & 4)
    elem.onmousedown = bits & 4?dispatchEvent_1:null;
  if (chMask & 8)
    elem.onmouseup = bits & 8?dispatchEvent_1:null;
  if (chMask & 16)
    elem.onmouseover = bits & 16?dispatchEvent_1:null;
  if (chMask & 32)
    elem.onmouseout = bits & 32?dispatchEvent_1:null;
  if (chMask & 64)
    elem.onmousemove = bits & 64?dispatchEvent_1:null;
  if (chMask & 128)
    elem.onkeydown = bits & 128?dispatchEvent_1:null;
  if (chMask & 256)
    elem.onkeypress = bits & 256?dispatchEvent_1:null;
  if (chMask & 512)
    elem.onkeyup = bits & 512?dispatchEvent_1:null;
  if (chMask & 1024)
    elem.onchange = bits & 1024?dispatchEvent_1:null;
  if (chMask & 2048)
    elem.onfocus = bits & 2048?dispatchEvent_1:null;
  if (chMask & 4096)
    elem.onblur = bits & 4096?dispatchEvent_1:null;
  if (chMask & 8192)
    elem.onlosecapture = bits & 8192?dispatchEvent_1:null;
  if (chMask & 16384)
    elem.onscroll = bits & 16384?dispatchEvent_1:null;
  if (chMask & 32768)
    elem.onload = bits & 32768?dispatchEvent_1:null;
  if (chMask & 65536)
    elem.onerror = bits & 65536?dispatchEvent_1:null;
  if (chMask & 131072)
    elem.onmousewheel = bits & 131072?dispatchEvent_1:null;
  if (chMask & 262144)
    elem.oncontextmenu = bits & 262144?dispatchEvent_1:null;
}

var captureElem = null, dispatchCapturedEvent = null, dispatchCapturedMouseEvent = null, dispatchEvent_1 = null;
var nullFunc = null;
function $initWindowCloseHandler(){
  var oldOnBeforeUnload = $wnd.onbeforeunload;
  var oldOnUnload = $wnd.onunload;
  $wnd.onbeforeunload = function(evt){
    var ret, oldRet;
    try {
      ret = fireClosingImpl();
    }
     finally {
      oldRet = oldOnBeforeUnload && oldOnBeforeUnload(evt);
    }
    if (ret != null) {
      return ret;
    }
    if (oldRet != null) {
      return oldRet;
    }
  }
  ;
  $wnd.onunload = function(evt){
    try {
      fireClosedImpl();
    }
     finally {
      oldOnUnload && oldOnUnload(evt);
      $wnd.onresize = null;
      $wnd.onscroll = null;
      $wnd.onbeforeunload = null;
      $wnd.onunload = null;
    }
  }
  ;
}

function $initWindowResizeHandler(){
  var oldOnResize = $wnd.onresize;
  $wnd.onresize = function(evt){
    try {
      fireResizedImpl();
    }
     finally {
      oldOnResize && oldOnResize(evt);
    }
  }
  ;
}

function $IncompatibleRemoteServiceException(this$static){
  this$static.detailMessage = 'This application is out of date, please click the refresh button on your browser.';
  return this$static;
}

function $IncompatibleRemoteServiceException_0(this$static, msg){
  this$static.detailMessage = 'This application is out of date, please click the refresh button on your browser. ( ' + msg + ' )';
  return this$static;
}

function IncompatibleRemoteServiceException(){
}

_ = IncompatibleRemoteServiceException.prototype = new RuntimeException();
_.typeId$ = 22;
function deserialize(streamReader, instance){
  instance.detailMessage = $getString(streamReader, streamReader.results[--streamReader.index_0]);
}

function instantiate(streamReader){
  return $IncompatibleRemoteServiceException(new IncompatibleRemoteServiceException());
}

function serialize(streamWriter, instance){
  $writeString(streamWriter, instance.detailMessage);
}

function $InvocationException(this$static, s){
  this$static.cause = null;
  this$static.detailMessage = s;
  return this$static;
}

function $InvocationException_0(this$static, s, cause){
  this$static.cause = cause;
  this$static.detailMessage = s;
  return this$static;
}

function InvocationException(){
}

_ = InvocationException.prototype = new RuntimeException();
_.typeId$ = 23;
function $SerializationException(this$static, msg){
  this$static.detailMessage = msg;
  return this$static;
}

function SerializationException(){
}

_ = SerializationException.prototype = new Exception();
_.typeId$ = 24;
function $ServiceDefTarget$NoServiceEntryPointSpecifiedException(this$static){
  this$static.cause = null;
  this$static.detailMessage = 'Service implementation URL not specified';
  return this$static;
}

function ServiceDefTarget$NoServiceEntryPointSpecifiedException(){
}

_ = ServiceDefTarget$NoServiceEntryPointSpecifiedException.prototype = new InvocationException();
_.typeId$ = 25;
function $StatusCodeException(this$static, message){
  this$static.cause = null;
  this$static.detailMessage = message;
  return this$static;
}

function StatusCodeException(){
}

_ = StatusCodeException.prototype = new InvocationException();
_.typeId$ = 26;
function deserialize_0(streamReader, instance){
}

function instantiate_0(streamReader){
  return $getString(streamReader, streamReader.results[--streamReader.index_0]);
}

function serialize_0(streamWriter, instance){
  append(streamWriter.encodeBuffer, '' + $addString(streamWriter, instance));
}

function AbstractSerializationStream(){
}

_ = AbstractSerializationStream.prototype = new Object_0();
_.typeId$ = 0;
_.flags = 0;
_.version = 5;
function $readObject(this$static){
  var token, typeSignature, id, instance;
  token = this$static.results[--this$static.index_0];
  if (token < 0) {
    return $get_0(this$static.seenArray, -(token + 1));
  }
  typeSignature = token > 0?this$static.stringTable[token - 1]:null;
  if (typeSignature == null) {
    return null;
  }
  return id = ($add_4(this$static.seenArray, null) , this$static.seenArray.size) , instance = $instantiate(this$static, typeSignature) , $set(this$static.seenArray, id - 1, instance) , $deserialize_0(this$static, instance, typeSignature) , instance;
}

function AbstractSerializationStreamReader(){
}

_ = AbstractSerializationStreamReader.prototype = new AbstractSerializationStream();
_.typeId$ = 0;
function $addString(this$static, string){
  var index, o;
  if (string == null) {
    return 0;
  }
  o = dynamicCast($get(this$static.stringMap, string), 14);
  if (o) {
    return o.value;
  }
  $add_4(this$static.stringTable, string);
  index = this$static.stringTable.size;
  $put(this$static.stringMap, string, valueOf(index));
  return index;
}

function $writeString(this$static, value){
  append(this$static.encodeBuffer, '' + $addString(this$static, value));
}

function AbstractSerializationStreamWriter(){
}

_ = AbstractSerializationStreamWriter.prototype = new AbstractSerializationStream();
_.typeId$ = 0;
function $ClientSerializationStreamReader(this$static){
  this$static.seenArray = $ArrayList(new ArrayList());
  return this$static;
}

function $getString(this$static, index){
  return index > 0?this$static.stringTable[index - 1]:null;
}

function $prepareToRead_0(this$static, encoded){
  this$static.results = eval(encoded);
  this$static.index_0 = this$static.results.length;
  $clearImpl_0(this$static.seenArray);
  this$static.version = this$static.results[--this$static.index_0];
  this$static.flags = this$static.results[--this$static.index_0];
  if (this$static.version != 5) {
    throw $IncompatibleRemoteServiceException_0(new IncompatibleRemoteServiceException(), 'Expecting version 5 from server, got ' + this$static.version + '.');
  }
  this$static.stringTable = this$static.results[--this$static.index_0];
}

function ClientSerializationStreamReader(){
}

_ = ClientSerializationStreamReader.prototype = new AbstractSerializationStreamReader();
_.typeId$ = 0;
_.index_0 = 0;
_.results = null;
_.stringTable = null;
function $clinit_134(){
  $clinit_134 = nullMethod;
  regex_0 = getQuotingRegex();
}

function $ClientSerializationStreamWriter(this$static, moduleBaseURL, serializationPolicyStrongName){
  $clinit_134();
  this$static.objectMap = $IdentityHashMap(new IdentityHashMap());
  this$static.stringMap = $HashMap(new HashMap());
  this$static.stringTable = $ArrayList(new ArrayList());
  this$static.moduleBaseURL = moduleBaseURL;
  this$static.serializationPolicyStrongName = serializationPolicyStrongName;
  return this$static;
}

function $writeStringTable(this$static, buffer){
  var s, s$iterator, stringTable;
  stringTable = this$static.stringTable;
  append(buffer, '' + stringTable.size);
  for (s$iterator = $AbstractList$IteratorImpl(new AbstractList$IteratorImpl(), stringTable); s$iterator.i < s$iterator.this$0.size;) {
    s = dynamicCast($next_1(s$iterator), 1);
    append(buffer, quoteString(s));
  }
  return buffer;
}

function append(sb, token){
  $clinit_134();
  sb.impl.string += token;
  sb.impl.string += '|';
}

function getQuotingRegex(){
  var ua = navigator.userAgent.toLowerCase();
  var webkitregex = /webkit\/([\d]+)/;
  var webkit = 0;
  var result = webkitregex.exec(ua);
  if (result) {
    webkit = parseInt(result[1]);
  }
  if (ua.indexOf('android') != -1) {
    return /[\u0000\|\\\u0080-\uFFFF]/g;
  }
   else if (webkit < 522) {
    return /[\x00\|\\]/g;
  }
   else if (webkit > 0) {
    return /[\u0000\|\\\u0300-\u036F\u0590-\u05FF\uD800-\uFFFF]/g;
  }
   else {
    return /[\u0000\|\\\uD800-\uFFFF]/g;
  }
}

function quoteString(str){
  var regex = regex_0;
  var idx = 0;
  var out = '';
  var result;
  while ((result = regex.exec(str)) != null) {
    out += str.substring(idx, result.index);
    idx = result.index + 1;
    var ch = result[0].charCodeAt(0);
    if (ch == 0) {
      out += '\\0';
    }
     else if (ch == 92) {
      out += '\\\\';
    }
     else if (ch == 124) {
      out += '\\!';
    }
     else {
      var hex = ch.toString(16);
      out += '\\u0000'.substring(0, 6 - hex.length) + hex;
    }
  }
  return out + str.substring(idx);
}

function ClientSerializationStreamWriter(){
}

_ = ClientSerializationStreamWriter.prototype = new AbstractSerializationStreamWriter();
_.typeId$ = 0;
_.encodeBuffer = null;
_.moduleBaseURL = null;
_.serializationPolicyStrongName = null;
var regex_0;
function $RemoteServiceProxy(this$static, moduleBaseURL, remoteServiceRelativePath, serializationPolicyName){
  this$static.moduleBaseURL = moduleBaseURL;
  if (remoteServiceRelativePath != null) {
    this$static.remoteServiceURL = moduleBaseURL + remoteServiceRelativePath;
  }
  this$static.serializationPolicyName = serializationPolicyName;
  return this$static;
}

function $doInvoke(this$static, methodName, invocationCount, requestData, callback){
  var $e0, ex, rb;
  rb = $doPrepareRequestBuilderImpl(this$static, methodName, invocationCount, requestData, callback);
  try {
    return throwIfNull('callback', rb.callback) , $doSend(rb, rb.requestData, rb.callback);
  }
   catch ($e0) {
    $e0 = caught_0($e0);
    if (instanceOf($e0, 22)) {
      ex = $e0;
      $InvocationException_0(new InvocationException(), 'Unable to initiate the asynchronous service invocation -- check the network connection', ex);
      $onFailure(callback);
    }
     else 
      throw $e0;
  }
   finally {
    !!$stats && $stats(bytesStat(methodName, invocationCount, requestData.length, 'requestSent'));
  }
  return null;
}

function $doPrepareRequestBuilderImpl(this$static, methodName, invocationCount, requestData, callback){
  var rb, responseHandler;
  if (this$static.remoteServiceURL == null) {
    throw $ServiceDefTarget$NoServiceEntryPointSpecifiedException(new ServiceDefTarget$NoServiceEntryPointSpecifiedException());
  }
  responseHandler = $RequestCallbackAdapter(new RequestCallbackAdapter(), methodName, invocationCount, callback);
  rb = $RequestBuilder(new RequestBuilder(), ($clinit_76() , POST), this$static.remoteServiceURL);
  $setHeader(rb, 'Content-Type', 'text/x-gwt-rpc; charset=utf-8');
  throwIfNull('callback', responseHandler);
  rb.callback = responseHandler;
  rb.requestData = requestData;
  return rb;
}

function bytesStat(method, count, bytes, eventType){
  var stat = {moduleName:$moduleName, subSystem:'rpc', evtGroup:count, method:method, millis:(new Date()).getTime(), type:eventType};
  stat.bytes = bytes;
  return stat;
}

function getEncodedInstance(encodedResponse){
  if (encodedResponse.indexOf('//OK') == 0 || encodedResponse.indexOf('//EX') == 0) {
    return encodedResponse.substr(4, encodedResponse.length - 4);
  }
  return encodedResponse;
}

function timeStat(method, count, eventType){
  return {moduleName:$moduleName, subSystem:'rpc', evtGroup:count, method:method, millis:(new Date()).getTime(), type:eventType};
}

function RemoteServiceProxy(){
}

_ = RemoteServiceProxy.prototype = new Object_0();
_.typeId$ = 0;
_.moduleBaseURL = null;
_.remoteServiceURL = null;
_.serializationPolicyName = null;
var requestId_0 = 0;
function $RequestCallbackAdapter(this$static, methodName, requestId, callback){
  this$static.callback = callback;
  this$static.methodName = methodName;
  this$static.requestId = requestId;
  return this$static;
}

function $onError(this$static){
  $onFailure(this$static.callback);
}

function $onResponseReceived(this$static, response){
  var $e0, caught, e, encodedResponse, result, statusCode, clientSerializationStreamReader, clientSerializationStreamReader_0;
  result = null;
  caught = null;
  try {
    encodedResponse = response.val$xmlHttpRequest.responseText;
    statusCode = response.val$xmlHttpRequest.status;
    !!$stats && $stats(bytesStat(this$static.methodName, this$static.requestId, encodedResponse.length, 'responseReceived'));
    if (statusCode != 200) {
      caught = $StatusCodeException(new StatusCodeException(), encodedResponse);
    }
     else if (encodedResponse == null) {
      caught = $InvocationException(new InvocationException(), 'No response payload');
    }
     else if (encodedResponse.indexOf('//OK') == 0) {
      result = $read((clientSerializationStreamReader = $ClientSerializationStreamReader(new ClientSerializationStreamReader()) , $prepareToRead_0(clientSerializationStreamReader, getEncodedInstance(encodedResponse)) , clientSerializationStreamReader));
    }
     else if (encodedResponse.indexOf('//EX') == 0) {
      caught = dynamicCast($readObject((clientSerializationStreamReader_0 = $ClientSerializationStreamReader(new ClientSerializationStreamReader()) , $prepareToRead_0(clientSerializationStreamReader_0, getEncodedInstance(encodedResponse)) , clientSerializationStreamReader_0)), 19);
    }
     else {
      caught = $InvocationException(new InvocationException(), encodedResponse);
    }
  }
   catch ($e0) {
    $e0 = caught_0($e0);
    if (instanceOf($e0, 23)) {
      caught = $IncompatibleRemoteServiceException(new IncompatibleRemoteServiceException());
    }
     else if (instanceOf($e0, 19)) {
      e = $e0;
      caught = e;
    }
     else 
      throw $e0;
  }
   finally {
    !!$stats && $stats(timeStat(this$static.methodName, this$static.requestId, 'responseDeserialized'));
  }
  try {
    if (!caught) {
      $onSuccess(this$static.callback, result);
    }
     else {
      $onFailure(this$static.callback);
    }
  }
   finally {
    !!$stats && $stats(timeStat(this$static.methodName, this$static.requestId, 'end'));
  }
}

function RequestCallbackAdapter(){
}

_ = RequestCallbackAdapter.prototype = new Object_0();
_.typeId$ = 0;
_.callback = null;
_.methodName = null;
_.requestId = 0;
function equals_0(other){
  return this === (other == null?null:other);
}

function hashCode_2(){
  return this.$H || (this.$H = ++sNextHashId);
}

function Enum(){
}

_ = Enum.prototype = new Object_0();
_.equals$ = equals_0;
_.hashCode$ = hashCode_2;
_.typeId$ = 27;
_.ordinal = 0;
function $clinit_147(){
  $clinit_147 = nullMethod;
  $RequestCallbackAdapter$ResponseReader$1(new RequestCallbackAdapter$ResponseReader$1(), 'BOOLEAN', 0);
  $RequestCallbackAdapter$ResponseReader$2(new RequestCallbackAdapter$ResponseReader$2(), 'BYTE', 1);
  $RequestCallbackAdapter$ResponseReader$3(new RequestCallbackAdapter$ResponseReader$3(), 'CHAR', 2);
  $RequestCallbackAdapter$ResponseReader$4(new RequestCallbackAdapter$ResponseReader$4(), 'DOUBLE', 3);
  $RequestCallbackAdapter$ResponseReader$5(new RequestCallbackAdapter$ResponseReader$5(), 'FLOAT', 4);
  $RequestCallbackAdapter$ResponseReader$6(new RequestCallbackAdapter$ResponseReader$6(), 'INT', 5);
  $RequestCallbackAdapter$ResponseReader$7(new RequestCallbackAdapter$ResponseReader$7(), 'LONG', 6);
  $RequestCallbackAdapter$ResponseReader$8(new RequestCallbackAdapter$ResponseReader$8(), 'OBJECT', 7);
  $RequestCallbackAdapter$ResponseReader$9(new RequestCallbackAdapter$ResponseReader$9(), 'SHORT', 8);
  $RequestCallbackAdapter$ResponseReader$10(new RequestCallbackAdapter$ResponseReader$10(), 'STRING', 9);
  $RequestCallbackAdapter$ResponseReader$11(new RequestCallbackAdapter$ResponseReader$11(), 'VOID', 10);
}

function RequestCallbackAdapter$ResponseReader(){
}

_ = RequestCallbackAdapter$ResponseReader.prototype = new Enum();
_.typeId$ = 28;
function $clinit_138(){
  $clinit_138 = nullMethod;
  $clinit_147();
}

function $RequestCallbackAdapter$ResponseReader$1(this$static, enum$name, enum$ordinal){
  $clinit_138();
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function RequestCallbackAdapter$ResponseReader$1(){
}

_ = RequestCallbackAdapter$ResponseReader$1.prototype = new RequestCallbackAdapter$ResponseReader();
_.typeId$ = 29;
function $clinit_136(){
  $clinit_136 = nullMethod;
  $clinit_147();
}

function $RequestCallbackAdapter$ResponseReader$10(this$static, enum$name, enum$ordinal){
  $clinit_136();
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function $read(streamReader){
  return $getString(streamReader, streamReader.results[--streamReader.index_0]);
}

function RequestCallbackAdapter$ResponseReader$10(){
}

_ = RequestCallbackAdapter$ResponseReader$10.prototype = new RequestCallbackAdapter$ResponseReader();
_.typeId$ = 30;
function $clinit_137(){
  $clinit_137 = nullMethod;
  $clinit_147();
}

function $RequestCallbackAdapter$ResponseReader$11(this$static, enum$name, enum$ordinal){
  $clinit_137();
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function RequestCallbackAdapter$ResponseReader$11(){
}

_ = RequestCallbackAdapter$ResponseReader$11.prototype = new RequestCallbackAdapter$ResponseReader();
_.typeId$ = 31;
function $clinit_139(){
  $clinit_139 = nullMethod;
  $clinit_147();
}

function $RequestCallbackAdapter$ResponseReader$2(this$static, enum$name, enum$ordinal){
  $clinit_139();
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function RequestCallbackAdapter$ResponseReader$2(){
}

_ = RequestCallbackAdapter$ResponseReader$2.prototype = new RequestCallbackAdapter$ResponseReader();
_.typeId$ = 32;
function $clinit_140(){
  $clinit_140 = nullMethod;
  $clinit_147();
}

function $RequestCallbackAdapter$ResponseReader$3(this$static, enum$name, enum$ordinal){
  $clinit_140();
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function RequestCallbackAdapter$ResponseReader$3(){
}

_ = RequestCallbackAdapter$ResponseReader$3.prototype = new RequestCallbackAdapter$ResponseReader();
_.typeId$ = 33;
function $clinit_141(){
  $clinit_141 = nullMethod;
  $clinit_147();
}

function $RequestCallbackAdapter$ResponseReader$4(this$static, enum$name, enum$ordinal){
  $clinit_141();
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function RequestCallbackAdapter$ResponseReader$4(){
}

_ = RequestCallbackAdapter$ResponseReader$4.prototype = new RequestCallbackAdapter$ResponseReader();
_.typeId$ = 34;
function $clinit_142(){
  $clinit_142 = nullMethod;
  $clinit_147();
}

function $RequestCallbackAdapter$ResponseReader$5(this$static, enum$name, enum$ordinal){
  $clinit_142();
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function RequestCallbackAdapter$ResponseReader$5(){
}

_ = RequestCallbackAdapter$ResponseReader$5.prototype = new RequestCallbackAdapter$ResponseReader();
_.typeId$ = 35;
function $clinit_143(){
  $clinit_143 = nullMethod;
  $clinit_147();
}

function $RequestCallbackAdapter$ResponseReader$6(this$static, enum$name, enum$ordinal){
  $clinit_143();
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function RequestCallbackAdapter$ResponseReader$6(){
}

_ = RequestCallbackAdapter$ResponseReader$6.prototype = new RequestCallbackAdapter$ResponseReader();
_.typeId$ = 36;
function $clinit_144(){
  $clinit_144 = nullMethod;
  $clinit_147();
}

function $RequestCallbackAdapter$ResponseReader$7(this$static, enum$name, enum$ordinal){
  $clinit_144();
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function RequestCallbackAdapter$ResponseReader$7(){
}

_ = RequestCallbackAdapter$ResponseReader$7.prototype = new RequestCallbackAdapter$ResponseReader();
_.typeId$ = 37;
function $clinit_145(){
  $clinit_145 = nullMethod;
  $clinit_147();
}

function $RequestCallbackAdapter$ResponseReader$8(this$static, enum$name, enum$ordinal){
  $clinit_145();
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function RequestCallbackAdapter$ResponseReader$8(){
}

_ = RequestCallbackAdapter$ResponseReader$8.prototype = new RequestCallbackAdapter$ResponseReader();
_.typeId$ = 38;
function $clinit_146(){
  $clinit_146 = nullMethod;
  $clinit_147();
}

function $RequestCallbackAdapter$ResponseReader$9(this$static, enum$name, enum$ordinal){
  $clinit_146();
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function RequestCallbackAdapter$ResponseReader$9(){
}

_ = RequestCallbackAdapter$ResponseReader$9.prototype = new RequestCallbackAdapter$ResponseReader();
_.typeId$ = 39;
function getStyleElement_0(){
  return this.element;
}

function setHeight_0(height){
  this.element.style['height'] = height;
}

function setStyleName(elem, style, add){
  var begin, end, idx, last, lastPos, newClassName, oldStyle;
  if (!elem) {
    throw $RuntimeException(new RuntimeException(), 'Null widget handle. If you are creating a composite, ensure that initWidget() has been called.');
  }
  style = $trim(style);
  if (style.length == 0) {
    throw $IllegalArgumentException(new IllegalArgumentException(), 'Style names cannot be empty');
  }
  oldStyle = elem['className'] == null?null:String(elem['className']);
  idx = oldStyle.indexOf(style);
  while (idx != -1) {
    if (idx == 0 || oldStyle.charCodeAt(idx - 1) == 32) {
      last = idx + style.length;
      lastPos = oldStyle.length;
      if (last == lastPos || last < lastPos && oldStyle.charCodeAt(last) == 32) {
        break;
      }
    }
    idx = oldStyle.indexOf(style, idx + 1);
  }
  if (add) {
    if (idx == -1) {
      if (oldStyle.length > 0) {
        oldStyle += ' ';
      }
      elem['className'] = oldStyle + style;
    }
  }
   else {
    if (idx != -1) {
      begin = $trim(oldStyle.substr(0, idx - 0));
      end = $trim($substring(oldStyle, idx + style.length));
      if (begin.length == 0) {
        newClassName = end;
      }
       else if (end.length == 0) {
        newClassName = begin;
      }
       else {
        newClassName = begin + ' ' + end;
      }
      elem['className'] = newClassName;
    }
  }
}

function setStylePrimaryName(elem, style){
  if (!elem) {
    throw $RuntimeException(new RuntimeException(), 'Null widget handle. If you are creating a composite, ensure that initWidget() has been called.');
  }
  style = $trim(style);
  if (style.length == 0) {
    throw $IllegalArgumentException(new IllegalArgumentException(), 'Style names cannot be empty');
  }
  updatePrimaryAndDependentStyleNames(elem, style);
}

function setWidth_0(width){
  this.element.style['width'] = width;
}

function updatePrimaryAndDependentStyleNames(elem, newPrimaryStyle){
  var classes = elem.className.split(/\s+/);
  if (!classes) {
    return;
  }
  var oldPrimaryStyle = classes[0];
  var oldPrimaryStyleLen = oldPrimaryStyle.length;
  classes[0] = newPrimaryStyle;
  for (var i = 1, n = classes.length; i < n; i++) {
    var name_0 = classes[i];
    if (name_0.length > oldPrimaryStyleLen && (name_0.charAt(oldPrimaryStyleLen) == '-' && name_0.indexOf(oldPrimaryStyle) == 0)) {
      classes[i] = newPrimaryStyle + name_0.substring(oldPrimaryStyleLen);
    }
  }
  elem.className = classes.join(' ');
}

function UIObject(){
}

_ = UIObject.prototype = new Object_0();
_.getStyleElement = getStyleElement_0;
_.setHeight = setHeight_0;
_.setWidth = setWidth_0;
_.typeId$ = 40;
_.element = null;
function $addDomHandler(this$static, handler, type){
  $sinkEvents(this$static, $eventGetTypeInt(type.name_0));
  return $addHandler_0(!this$static.handlerManager?(this$static.handlerManager = $HandlerManager(new HandlerManager(), this$static)):this$static.handlerManager, type, handler);
}

function $fireEvent_1(this$static, event_0){
  if (this$static.handlerManager) {
    $fireEvent_0(this$static.handlerManager, event_0);
  }
}

function $onAttach(this$static){
  var bitsToAdd;
  if (this$static.attached) {
    throw $IllegalStateException(new IllegalStateException(), "Should only call onAttach when the widget is detached from the browser's document");
  }
  this$static.attached = true;
  this$static.element.__listener = this$static;
  bitsToAdd = this$static.eventsToSink;
  this$static.eventsToSink = -1;
  if (bitsToAdd > 0) {
    $sinkEvents(this$static, bitsToAdd);
  }
  this$static.doAttachChildren();
  this$static.onLoad();
}

function $onBrowserEvent(this$static, event_0){
  var related;
  switch ($eventGetTypeInt(($clinit_11() , event_0).type)) {
    case 16:
    case 32:
      related = event_0.relatedTarget;
      if (!!related && $isOrHasChild(this$static.element, related)) {
        return;
      }

  }
  fireNativeEvent(event_0, this$static, this$static.element);
}

function $onDetach(this$static){
  if (!this$static.attached) {
    throw $IllegalStateException(new IllegalStateException(), "Should only call onDetach when the widget is attached to the browser's document");
  }
  try {
    this$static.onUnload();
  }
   finally {
    this$static.doDetachChildren();
    this$static.element.__listener = null;
    this$static.attached = false;
  }
}

function $removeFromParent(this$static){
  if (!this$static.parent_0) {
    $clinit_188();
    if ($containsKey(widgetsToDetach.map, this$static)) {
      $onDetach(this$static);
      $remove_6(widgetsToDetach.map, this$static) != null;
    }
  }
   else if (this$static.parent_0) {
    this$static.parent_0.remove(this$static);
  }
   else if (this$static.parent_0) {
    throw $IllegalStateException(new IllegalStateException(), "This widget's parent does not implement HasWidgets");
  }
}

function $setParent(this$static, parent_0){
  var oldParent;
  oldParent = this$static.parent_0;
  if (!parent_0) {
    if (!!oldParent && oldParent.attached) {
      $onDetach(this$static);
    }
    this$static.parent_0 = null;
  }
   else {
    if (oldParent) {
      throw $IllegalStateException(new IllegalStateException(), 'Cannot set a new parent without first clearing the old parent');
    }
    this$static.parent_0 = parent_0;
    if (parent_0.attached) {
      $onAttach(this$static);
    }
  }
}

function $sinkEvents(this$static, eventBitsToAdd){
  if (this$static.eventsToSink == -1) {
    sinkEvents(this$static.element, eventBitsToAdd | (this$static.element.__eventBits || 0));
  }
   else {
    this$static.eventsToSink |= eventBitsToAdd;
  }
}

function doAttachChildren_2(){
}

function doDetachChildren_2(){
}

function fireEvent_1(event_0){
  $fireEvent_1(this, event_0);
}

function onBrowserEvent_1(event_0){
  $onBrowserEvent(this, event_0);
}

function onLoad_0(){
}

function onUnload_1(){
}

function Widget(){
}

_ = Widget.prototype = new UIObject();
_.doAttachChildren = doAttachChildren_2;
_.doDetachChildren = doDetachChildren_2;
_.fireEvent = fireEvent_1;
_.onBrowserEvent = onBrowserEvent_1;
_.onLoad = onLoad_0;
_.onUnload = onUnload_1;
_.typeId$ = 41;
_.attached = false;
_.eventsToSink = 0;
_.handlerManager = null;
_.parent_0 = null;
function $adopt(this$static, child){
  $setParent(child, this$static);
}

function doAttachChildren_1(){
  var child, it;
  for (it = this.iterator_0(); it.hasNext();) {
    child = dynamicCast(it.next_0(), 10);
    $onAttach(child);
  }
}

function doDetachChildren_1(){
  var child, it;
  for (it = this.iterator_0(); it.hasNext();) {
    child = dynamicCast(it.next_0(), 10);
    $onDetach(child);
  }
}

function onLoad(){
}

function onUnload(){
}

function Panel(){
}

_ = Panel.prototype = new Widget();
_.doAttachChildren = doAttachChildren_1;
_.doDetachChildren = doDetachChildren_1;
_.onLoad = onLoad;
_.onUnload = onUnload;
_.typeId$ = 42;
function $add_0(this$static, child, container){
  $removeFromParent(child);
  $add_2(this$static.children, child);
  container.appendChild(child.element);
  $setParent(child, this$static);
}

function $remove_1(this$static, w){
  var elem;
  if (w.parent_0 != this$static) {
    return false;
  }
  $setParent(w, null);
  elem = w.element;
  $getParentElement(($clinit_11() , elem)).removeChild(elem);
  $remove_4(this$static.children, w);
  return true;
}

function iterator(){
  return $WidgetCollection$WidgetIterator(new WidgetCollection$WidgetIterator(), this.children);
}

function remove_1(w){
  return $remove_1(this, w);
}

function ComplexPanel(){
}

_ = ComplexPanel.prototype = new Panel();
_.iterator_0 = iterator;
_.remove = remove_1;
_.typeId$ = 43;
function $add(this$static, w){
  $add_0(this$static, w, this$static.element);
}

function $remove_0(this$static, w){
  var removed;
  removed = $remove_1(this$static, w);
  if (removed) {
    changeToStaticPositioning(w.element);
  }
  return removed;
}

function changeToStaticPositioning(elem){
  elem.style['left'] = '';
  elem.style['top'] = '';
  elem.style['position'] = '';
}

function remove_0(w){
  return $remove_0(this, w);
}

function AbsolutePanel(){
}

_ = AbsolutePanel.prototype = new ComplexPanel();
_.remove = remove_0;
_.typeId$ = 44;
function $clinit_161(){
  $clinit_161 = nullMethod;
  impl = ($clinit_206() , implWidget);
}

function $setFocus(this$static, focused){
  if (focused) {
    impl.focus_0(this$static.element);
  }
   else {
    impl.blur_0(this$static.element);
  }
}

function FocusWidget(){
}

_ = FocusWidget.prototype = new Widget();
_.typeId$ = 45;
var impl;
function $clinit_150(){
  $clinit_150 = nullMethod;
  $clinit_161();
}

function $ButtonBase(this$static, elem){
  $clinit_150();
  this$static.element = elem;
  impl.setTabIndex(this$static.element, 0);
  return this$static;
}

function ButtonBase(){
}

_ = ButtonBase.prototype = new FocusWidget();
_.typeId$ = 46;
function $clinit_151(){
  $clinit_151 = nullMethod;
  $clinit_150();
}

function $Button_0(this$static, html){
  $clinit_151();
  $ButtonBase(this$static, ($clinit_11() , $doc).createElement('button'));
  adjustType(this$static.element);
  this$static.element['className'] = 'gwt-Button';
  this$static.element.innerHTML = html || '';
  return this$static;
}

function adjustType(button){
  if (button.type == 'submit') {
    try {
      button.setAttribute('type', 'button');
    }
     catch (e) {
    }
  }
}

function Button(){
}

_ = Button.prototype = new ButtonBase();
_.typeId$ = 47;
function CellPanel(){
}

_ = CellPanel.prototype = new ComplexPanel();
_.typeId$ = 48;
_.body_0 = null;
_.table = null;
function $remove_2(this$static, w){
  if (this$static.widget != w) {
    return false;
  }
  $setParent(w, null);
  this$static.getContainerElement().removeChild(w.element);
  this$static.widget = null;
  return true;
}

function $setWidget_0(this$static, w){
  if (w == this$static.widget) {
    return;
  }
  if (w) {
    $removeFromParent(w);
  }
  if (this$static.widget) {
    this$static.remove(this$static.widget);
  }
  this$static.widget = w;
  if (w) {
    this$static.getContainerElement().appendChild(this$static.widget.element);
    $setParent(w, this$static);
  }
}

function getContainerElement_1(){
  return this.element;
}

function iterator_1(){
  return $SimplePanel$1(new SimplePanel$1(), this);
}

function remove_3(w){
  return $remove_2(this, w);
}

function SimplePanel(){
}

_ = SimplePanel.prototype = new Panel();
_.getContainerElement = getContainerElement_1;
_.iterator_0 = iterator_1;
_.remove = remove_3;
_.typeId$ = 49;
_.widget = null;
function $blur(elt){
  if (elt.blur && elt != $doc.body) {
    elt.blur();
  }
}

function $center(this$static){
  var initiallyAnimated, initiallyShowing, left, top_0;
  initiallyShowing = this$static.showing;
  initiallyAnimated = this$static.isAnimationEnabled;
  if (!initiallyShowing) {
    this$static.element.style['visibility'] = 'hidden';
    this$static.isAnimationEnabled = false;
    $show(this$static);
  }
  left = $getClientWidth($doc) - (parseInt(this$static.element['offsetWidth']) || 0) >> 1;
  top_0 = $getClientHeight($doc) - (parseInt(this$static.element['offsetHeight']) || 0) >> 1;
  $setPopupPosition(this$static, (($clinit_11() , $doc).body.scrollLeft || 0) + left, ($doc.body.scrollTop || 0) + top_0);
  if (!initiallyShowing) {
    this$static.isAnimationEnabled = initiallyAnimated;
    if (initiallyAnimated) {
      this$static.element.style['clip'] = 'rect(0px, 0px, 0px, 0px)';
      this$static.element.style['visibility'] = 'visible';
      $run(this$static.resizeAnimation, 200, (new Date()).getTime());
    }
     else {
      this$static.element.style['visibility'] = 'visible';
    }
  }
}

function $eventTargetsPopup(this$static, event_0){
  var target;
  target = ($clinit_11() , event_0).target;
  if (is(target)) {
    return $isOrHasChild(this$static.element, target);
  }
  return false;
}

function $hide_0(this$static){
  if (!this$static.showing) {
    return;
  }
  $setState_0(this$static, false, true);
  fire(this$static);
}

function $maybeUpdateSize(this$static){
  var w;
  w = this$static.widget;
  if (w) {
    if (this$static.desiredHeight != null) {
      w.setHeight(this$static.desiredHeight);
    }
    if (this$static.desiredWidth != null) {
      w.setWidth(this$static.desiredWidth);
    }
  }
}

function $previewNativeEvent(this$static, event_0){
  var eventTargetsPopupOrPartner, nativeEvent, target, type;
  if (event_0.isCanceled || !this$static.previewAllNativeEvents && event_0.isConsumed) {
    if (this$static.modal) {
      event_0.isCanceled = true;
    }
    return;
  }
  this$static.onPreviewNativeEvent(event_0);
  if (event_0.isCanceled) {
    return;
  }
  nativeEvent = event_0.nativeEvent;
  eventTargetsPopupOrPartner = $eventTargetsPopup(this$static, nativeEvent);
  if (eventTargetsPopupOrPartner) {
    event_0.isConsumed = true;
  }
  if (this$static.modal) {
    event_0.isCanceled = true;
  }
  type = $eventGetTypeInt(($clinit_11() , nativeEvent).type);
  switch (type) {
    case 128:
      {
        (nativeEvent.which || (nativeEvent.keyCode || 0)) & 65535;
        (nativeEvent.shiftKey?1:0) | (nativeEvent.metaKey?8:0) | (nativeEvent.ctrlKey?2:0) | (nativeEvent.altKey?4:0);
        return;
      }

    case 512:
      {
        (nativeEvent.which || (nativeEvent.keyCode || 0)) & 65535;
        (nativeEvent.shiftKey?1:0) | (nativeEvent.metaKey?8:0) | (nativeEvent.ctrlKey?2:0) | (nativeEvent.altKey?4:0);
        return;
      }

    case 256:
      {
        (nativeEvent.which || (nativeEvent.keyCode || 0)) & 65535;
        (nativeEvent.shiftKey?1:0) | (nativeEvent.metaKey?8:0) | (nativeEvent.ctrlKey?2:0) | (nativeEvent.altKey?4:0);
        return;
      }

    case 4:
      if (sCaptureElem) {
        event_0.isConsumed = true;
        return;
      }

      if (!eventTargetsPopupOrPartner && this$static.autoHide) {
        $hide_0(this$static);
        return;
      }

      break;
    case 8:
    case 64:
    case 1:
    case 2:
      {
        if (sCaptureElem) {
          event_0.isConsumed = true;
          return;
        }
        break;
      }

    case 2048:
      {
        target = nativeEvent.target;
        if (this$static.modal && !eventTargetsPopupOrPartner && !!target) {
          $blur(target);
          event_0.isCanceled = true;
          return;
        }
        break;
      }

  }
}

function $setPopupPosition(this$static, left, top_0){
  var elem;
  this$static.leftPosition = left;
  this$static.topPosition = top_0;
  left -= $getBodyOffsetLeft_0($doc);
  top_0 -= $getBodyOffsetTop_0($doc);
  elem = this$static.element;
  elem.style['left'] = left + 'px';
  elem.style['top'] = top_0 + 'px';
}

function $setState_0(this$static, showing, maybeAnimate){
  if (maybeAnimate) {
    $setState(this$static.resizeAnimation, showing);
  }
   else {
    $cancel(this$static.resizeAnimation);
  }
  this$static.showing = showing;
  if (showing) {
    this$static.nativePreviewHandlerRegistration = addNativePreviewHandler($PopupPanel$2(new PopupPanel$2(), this$static));
  }
   else if (this$static.nativePreviewHandlerRegistration) {
    $removeHandler(this$static.nativePreviewHandlerRegistration);
    this$static.nativePreviewHandlerRegistration = null;
  }
}

function $setWidget(this$static, w){
  $setWidget_0(this$static, w);
  $maybeUpdateSize(this$static);
}

function $show_0(this$static){
  if (this$static.showing) {
    return;
  }
  $setState_0(this$static, true, true);
}

function getContainerElement_0(){
  return $getFirstChildElement(($clinit_11() , this.element));
}

function getStyleElement(){
  return $getStyleElement($getFirstChildElement(($clinit_11() , this.element)));
}

function onPreviewNativeEvent_0(event_0){
}

function onUnload_0(){
  if (this.showing) {
    $setState_0(this, false, false);
  }
}

function setHeight(height){
  this.desiredHeight = height;
  $maybeUpdateSize(this);
  if (height.length == 0) {
    this.desiredHeight = null;
  }
}

function setWidth(width){
  this.desiredWidth = width;
  $maybeUpdateSize(this);
  if (width.length == 0) {
    this.desiredWidth = null;
  }
}

function PopupPanel(){
}

_ = PopupPanel.prototype = new SimplePanel();
_.getContainerElement = getContainerElement_0;
_.getStyleElement = getStyleElement;
_.onPreviewNativeEvent = onPreviewNativeEvent_0;
_.onUnload = onUnload_0;
_.setHeight = setHeight;
_.setWidth = setWidth;
_.typeId$ = 50;
_.autoHide = false;
_.desiredHeight = null;
_.desiredWidth = null;
_.isAnimationEnabled = false;
_.leftPosition = -1;
_.modal = false;
_.nativePreviewHandlerRegistration = null;
_.previewAllNativeEvents = false;
_.showing = false;
_.topPosition = -1;
function doAttachChildren(){
  $onAttach(this.decPanel);
}

function doDetachChildren(){
  $onDetach(this.decPanel);
}

function iterator_0(){
  return $SimplePanel$1(new SimplePanel$1(), this.decPanel);
}

function remove_2(w){
  return $remove_2(this.decPanel, w);
}

function DecoratedPopupPanel(){
}

_ = DecoratedPopupPanel.prototype = new PopupPanel();
_.doAttachChildren = doAttachChildren;
_.doDetachChildren = doDetachChildren;
_.iterator_0 = iterator_0;
_.remove = remove_2;
_.typeId$ = 51;
_.decPanel = null;
function $DecoratorPanel(this$static, rowStyles, containerIndex){
  var i, row, table, trElem;
  this$static.element = ($clinit_11() , $doc).createElement('table');
  table = this$static.element;
  this$static.tbody = $doc.createElement('tbody');
  table.appendChild(this$static.tbody);
  table['cellSpacing'] = 0;
  table['cellPadding'] = 0;
  for (i = 0; i < rowStyles.length; ++i) {
    row = (trElem = $doc.createElement('tr') , (trElem['className'] = rowStyles[i] , undefined) , trElem.appendChild(createTD(rowStyles[i] + 'Left')) , trElem.appendChild(createTD(rowStyles[i] + 'Center')) , trElem.appendChild(createTD(rowStyles[i] + 'Right')) , trElem);
    this$static.tbody.appendChild(row);
    if (i == containerIndex) {
      this$static.containerElem = $getFirstChildElement($getChild(row, 1));
    }
  }
  this$static.element['className'] = 'gwt-DecoratorPanel';
  return this$static;
}

function createTD(styleName){
  var inner, tdElem;
  tdElem = ($clinit_11() , $doc).createElement('td');
  inner = $doc.createElement('div');
  tdElem.appendChild(inner);
  tdElem['className'] = styleName;
  inner['className'] = styleName + 'Inner';
  return tdElem;
}

function getContainerElement(){
  return this.containerElem;
}

function DecoratorPanel(){
}

_ = DecoratorPanel.prototype = new SimplePanel();
_.getContainerElement = getContainerElement;
_.typeId$ = 52;
_.containerElem = null;
_.tbody = null;
function $DialogBox(this$static){
  var mouseHandler, td_0, td, tr, rowStyles_0;
  this$static.element = ($clinit_11() , $doc).createElement('div');
  this$static.animType = ($clinit_182() , CENTER);
  this$static.resizeAnimation = $PopupPanel$ResizeAnimation(new PopupPanel$ResizeAnimation(), this$static);
  this$static.element.appendChild($doc.createElement('div'));
  $setPopupPosition(this$static, 0, 0);
  $getParentElement($getFirstChildElement(this$static.element))['className'] = 'gwt-PopupPanel';
  $getFirstChildElement(this$static.element)['className'] = 'popupContent';
  this$static.autoHide = false;
  this$static.modal = true;
  rowStyles_0 = initValues(_3Ljava_lang_String_2_classLit, 0, 1, ['dialog' + 'Top', 'dialog' + 'Middle', 'dialog' + 'Bottom']);
  this$static.decPanel = $DecoratorPanel(new DecoratorPanel(), rowStyles_0, 1);
  this$static.decPanel.getStyleElement()['className'] = '';
  setStylePrimaryName($getParentElement($getFirstChildElement(this$static.element)), 'gwt-DecoratedPopupPanel');
  $setWidget(this$static, this$static.decPanel);
  setStyleName($getFirstChildElement(this$static.element), 'popupContent', false);
  setStyleName(this$static.decPanel.containerElem, 'dialog' + 'Content', true);
  this$static.caption = $DialogBox$CaptionImpl(new DialogBox$CaptionImpl());
  td_0 = (tr = $getChild(this$static.decPanel.tbody, 0) , td = $getChild(tr, 1) , $getFirstChildElement(td));
  td_0.appendChild(this$static.caption.element);
  $adopt(this$static, this$static.caption);
  this$static.caption.getStyleElement()['className'] = 'Caption';
  $getParentElement($getFirstChildElement(this$static.element))['className'] = 'gwt-DialogBox';
  this$static.windowWidth = $getClientWidth($doc);
  this$static.clientLeft = $getBodyOffsetLeft_0($doc);
  this$static.clientTop = $getBodyOffsetTop_0($doc);
  mouseHandler = $DialogBox$MouseHandler(new DialogBox$MouseHandler(), this$static);
  $addDomHandler(this$static, mouseHandler, ($clinit_42() , $clinit_42() , TYPE_1));
  $addDomHandler(this$static, mouseHandler, ($clinit_51() , $clinit_51() , TYPE_5));
  $addDomHandler(this$static, mouseHandler, ($clinit_45() , $clinit_45() , TYPE_2));
  $addDomHandler(this$static, mouseHandler, ($clinit_49() , $clinit_49() , TYPE_4));
  $addDomHandler(this$static, mouseHandler, ($clinit_47() , $clinit_47() , TYPE_3));
  return this$static;
}

function $hide(this$static){
  if (this$static.resizeHandlerRegistration) {
    $removeHandler(this$static.resizeHandlerRegistration);
    this$static.resizeHandlerRegistration = null;
  }
  $hide_0(this$static);
}

function $isCaptionEvent(this$static, event_0){
  var target, td, tr;
  target = ($clinit_11() , event_0).target;
  if (is(target)) {
    return $isOrHasChild($getParentElement((tr = $getChild(this$static.decPanel.tbody, 0) , td = $getChild(tr, 1) , $getFirstChildElement(td))), target);
  }
  return false;
}

function $onMouseDown(this$static, x, y){
  this$static.dragging = true;
  setCapture(this$static.element);
  this$static.dragStartX = x;
  this$static.dragStartY = y;
}

function $onMouseMove(this$static, x, y){
  var absX, absY;
  if (this$static.dragging) {
    absX = x + $getAbsoluteLeft(($clinit_11() , this$static.element));
    absY = y + $getAbsoluteTop(this$static.element);
    if (absX < this$static.clientLeft || absX >= this$static.windowWidth || absY < this$static.clientTop) {
      return;
    }
    $setPopupPosition(this$static, absX - this$static.dragStartX, absY - this$static.dragStartY);
  }
}

function $onMouseUp(this$static){
  this$static.dragging = false;
  releaseCapture(this$static.element);
}

function $show(this$static){
  if (!this$static.resizeHandlerRegistration) {
    this$static.resizeHandlerRegistration = addResizeHandler($DialogBox$1(new DialogBox$1(), this$static));
  }
  $show_0(this$static);
}

function doAttachChildren_0(){
  $onAttach(this.decPanel);
  $onAttach(this.caption);
}

function doDetachChildren_0(){
  $onDetach(this.decPanel);
  $onDetach(this.caption);
}

function onBrowserEvent(event_0){
  switch ($eventGetTypeInt(($clinit_11() , event_0).type)) {
    case 4:
    case 8:
    case 64:
    case 16:
    case 32:
      if (!this.dragging && !$isCaptionEvent(this, event_0)) {
        return;
      }

  }
  $onBrowserEvent(this, event_0);
}

function onPreviewNativeEvent(event_0){
  var nativeEvent;
  nativeEvent = event_0.nativeEvent;
  if (!event_0.isCanceled && $eventGetTypeInt(($clinit_11() , event_0.nativeEvent).type) == 4 && $isCaptionEvent(this, nativeEvent)) {
    ($clinit_11() , nativeEvent).preventDefault();
  }
}

function DialogBox(){
}

_ = DialogBox.prototype = new DecoratedPopupPanel();
_.doAttachChildren = doAttachChildren_0;
_.doDetachChildren = doDetachChildren_0;
_.onBrowserEvent = onBrowserEvent;
_.onPreviewNativeEvent = onPreviewNativeEvent;
_.typeId$ = 53;
_.clientLeft = 0;
_.clientTop = 0;
_.dragStartX = 0;
_.dragStartY = 0;
_.dragging = false;
_.resizeHandlerRegistration = null;
_.windowWidth = 0;
function $DialogBox$1(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function DialogBox$1(){
}

_ = DialogBox$1.prototype = new Object_0();
_.typeId$ = 54;
_.this$0 = null;
function $Label(this$static){
  this$static.element = ($clinit_11() , $doc).createElement('div');
  this$static.element['className'] = 'gwt-Label';
  return this$static;
}

function Label(){
}

_ = Label.prototype = new Widget();
_.typeId$ = 55;
function $HTML(this$static){
  this$static.element = ($clinit_11() , $doc).createElement('div');
  this$static.element['className'] = 'gwt-HTML';
  return this$static;
}

function $HTML_0(this$static, html){
  this$static.element = ($clinit_11() , $doc).createElement('div');
  this$static.element['className'] = 'gwt-HTML';
  this$static.element.innerHTML = html || '';
  return this$static;
}

function HTML(){
}

_ = HTML.prototype = new Label();
_.typeId$ = 56;
function $DialogBox$CaptionImpl(this$static){
  this$static.element = ($clinit_11() , $doc).createElement('div');
  this$static.element['className'] = 'gwt-HTML';
  return this$static;
}

function DialogBox$CaptionImpl(){
}

_ = DialogBox$CaptionImpl.prototype = new HTML();
_.typeId$ = 57;
function $DialogBox$MouseHandler(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function DialogBox$MouseHandler(){
}

_ = DialogBox$MouseHandler.prototype = new Object_0();
_.typeId$ = 58;
_.this$0 = null;
function $clinit_169(){
  $clinit_169 = nullMethod;
  $HasHorizontalAlignment$HorizontalAlignmentConstant(new HasHorizontalAlignment$HorizontalAlignmentConstant(), 'center');
  ALIGN_LEFT = $HasHorizontalAlignment$HorizontalAlignmentConstant(new HasHorizontalAlignment$HorizontalAlignmentConstant(), 'left');
  ALIGN_RIGHT = $HasHorizontalAlignment$HorizontalAlignmentConstant(new HasHorizontalAlignment$HorizontalAlignmentConstant(), 'right');
  ALIGN_DEFAULT = ALIGN_LEFT;
}

var ALIGN_DEFAULT, ALIGN_LEFT, ALIGN_RIGHT;
function $HasHorizontalAlignment$HorizontalAlignmentConstant(this$static, textAlignString){
  this$static.textAlignString = textAlignString;
  return this$static;
}

function HasHorizontalAlignment$HorizontalAlignmentConstant(){
}

_ = HasHorizontalAlignment$HorizontalAlignmentConstant.prototype = new Object_0();
_.typeId$ = 0;
_.textAlignString = null;
function $clinit_174(){
  $clinit_174 = nullMethod;
  $HasVerticalAlignment$VerticalAlignmentConstant(new HasVerticalAlignment$VerticalAlignmentConstant(), 'bottom');
  $HasVerticalAlignment$VerticalAlignmentConstant(new HasVerticalAlignment$VerticalAlignmentConstant(), 'middle');
  ALIGN_TOP = $HasVerticalAlignment$VerticalAlignmentConstant(new HasVerticalAlignment$VerticalAlignmentConstant(), 'top');
}

var ALIGN_TOP;
function $HasVerticalAlignment$VerticalAlignmentConstant(this$static, verticalAlignString){
  this$static.verticalAlignString = verticalAlignString;
  return this$static;
}

function HasVerticalAlignment$VerticalAlignmentConstant(){
}

_ = HasVerticalAlignment$VerticalAlignmentConstant.prototype = new Object_0();
_.typeId$ = 0;
_.verticalAlignString = null;
function $PopupPanel$2(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function PopupPanel$2(){
}

_ = PopupPanel$2.prototype = new Object_0();
_.typeId$ = 59;
_.this$0 = null;
function $clinit_182(){
  $clinit_182 = nullMethod;
  CENTER = $PopupPanel$AnimationType(new PopupPanel$AnimationType(), 'CENTER', 0);
  $PopupPanel$AnimationType(new PopupPanel$AnimationType(), 'ONE_WAY_CORNER', 1);
  $PopupPanel$AnimationType(new PopupPanel$AnimationType(), 'ROLL_DOWN', 2);
}

function $PopupPanel$AnimationType(this$static, enum$name, enum$ordinal){
  $clinit_182();
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function PopupPanel$AnimationType(){
}

_ = PopupPanel$AnimationType.prototype = new Enum();
_.typeId$ = 60;
var CENTER;
function $PopupPanel$ResizeAnimation(this$static, panel){
  this$static.curPanel = panel;
  return this$static;
}

function $onComplete(this$static){
  if (!this$static.showing) {
    $remove_0(($clinit_188() , get_0(null)), this$static.curPanel);
  }
  this$static.curPanel.element.style['clip'] = 'rect(auto, auto, auto, auto)';
  this$static.curPanel.element.style['overflow'] = 'visible';
}

function $onInstantaneousRun(this$static){
  if (this$static.showing) {
    this$static.curPanel.element.style['position'] = 'absolute';
    if (this$static.curPanel.topPosition != -1) {
      $setPopupPosition(this$static.curPanel, this$static.curPanel.leftPosition, this$static.curPanel.topPosition);
    }
    $add(($clinit_188() , get_0(null)), this$static.curPanel);
  }
   else {
    $remove_0(($clinit_188() , get_0(null)), this$static.curPanel);
  }
  this$static.curPanel.element.style['overflow'] = 'visible';
}

function $onUpdate(this$static, progress){
  var bottom, height, left, right, top_0, width;
  if (!this$static.showing) {
    progress = 1 - progress;
  }
  top_0 = 0;
  left = 0;
  right = 0;
  bottom = 0;
  height = ~~Math.max(Math.min(progress * this$static.offsetHeight, 2147483647), -2147483648);
  width = ~~Math.max(Math.min(progress * this$static.offsetWidth, 2147483647), -2147483648);
  switch (this$static.curPanel.animType.ordinal) {
    case 2:
      right = this$static.offsetWidth;
      bottom = height;
      break;
    case 0:
      top_0 = this$static.offsetHeight - height >> 1;
      left = this$static.offsetWidth - width >> 1;
      right = left + width;
      bottom = top_0 + height;
      break;
    case 1:
      right = left + width;
      bottom = top_0 + height;
  }
  this$static.curPanel.element.style['clip'] = 'rect(' + top_0 + 'px, ' + right + 'px, ' + bottom + 'px, ' + left + 'px)';
}

function $setState(this$static, showing){
  var animate;
  $cancel(this$static);
  animate = this$static.curPanel.isAnimationEnabled;
  if (this$static.curPanel.animType != ($clinit_182() , CENTER) && !showing) {
    animate = false;
  }
  this$static.showing = showing;
  if (animate) {
    if (showing) {
      this$static.curPanel.element.style['position'] = 'absolute';
      if (this$static.curPanel.topPosition != -1) {
        $setPopupPosition(this$static.curPanel, this$static.curPanel.leftPosition, this$static.curPanel.topPosition);
      }
      this$static.curPanel.element.style['clip'] = 'rect(0px, 0px, 0px, 0px)';
      $add(($clinit_188() , get_0(null)), this$static.curPanel);
    }
    addCommand($PopupPanel$ResizeAnimation$1(new PopupPanel$ResizeAnimation$1(), this$static));
  }
   else {
    $onInstantaneousRun(this$static);
  }
}

function PopupPanel$ResizeAnimation(){
}

_ = PopupPanel$ResizeAnimation.prototype = new Animation();
_.typeId$ = 61;
_.curPanel = null;
_.offsetHeight = 0;
_.offsetWidth = -1;
_.showing = false;
function $PopupPanel$ResizeAnimation$1(this$static, this$1){
  this$static.this$1 = this$1;
  return this$static;
}

function PopupPanel$ResizeAnimation$1(){
}

_ = PopupPanel$ResizeAnimation$1.prototype = new Object_0();
_.typeId$ = 62;
_.this$1 = null;
function $clinit_188(){
  $clinit_188 = nullMethod;
  rootPanels = $HashMap(new HashMap());
  widgetsToDetach = $HashSet(new HashSet());
}

function $RootPanel(this$static, elem){
  $clinit_188();
  this$static.children = $WidgetCollection(new WidgetCollection());
  this$static.element = elem;
  $onAttach(this$static);
  return this$static;
}

function detachWidgets(){
  var outerIter, entry;
  $clinit_188();
  var widget, widget$iterator;
  for (widget$iterator = (outerIter = $AbstractHashMap$EntrySetIterator(new AbstractHashMap$EntrySetIterator(), $keySet(widgetsToDetach.map).val$entrySet.this$0) , $AbstractMap$1$1(new AbstractMap$1$1(), outerIter)); $hasNext_0(widget$iterator.val$outerIter.iter);) {
    widget = dynamicCast((entry = $next_0(widget$iterator.val$outerIter) , entry.getKey()), 10);
    if (widget.attached) {
      $onDetach(widget);
    }
  }
  $clearImpl(widgetsToDetach.map);
  $clearImpl(rootPanels);
}

function get_0(id){
  $clinit_188();
  var elem, rp;
  rp = dynamicCast($get(rootPanels, id), 24);
  elem = null;
  if (id != null) {
    if (!(elem = $doc.getElementById(id))) {
      return null;
    }
  }
  if (rp) {
    if (!elem || rp.element == elem) {
      return rp;
    }
  }
  if (rootPanels.size == 0) {
    addCloseHandler(new RootPanel$1());
  }
  if (!elem) {
    rp = $RootPanel$DefaultRootPanel(new RootPanel$DefaultRootPanel());
  }
   else {
    rp = $RootPanel(new RootPanel(), elem);
  }
  $put(rootPanels, id, rp);
  $add_5(widgetsToDetach, rp);
  return rp;
}

function RootPanel(){
}

_ = RootPanel.prototype = new AbsolutePanel();
_.typeId$ = 63;
var rootPanels, widgetsToDetach;
function onClose_0(closeEvent){
  detachWidgets();
}

function RootPanel$1(){
}

_ = RootPanel$1.prototype = new Object_0();
_.onClose = onClose_0;
_.typeId$ = 64;
function $clinit_187(){
  $clinit_187 = nullMethod;
  $clinit_188();
}

function $RootPanel$DefaultRootPanel(this$static){
  $clinit_187();
  $RootPanel(this$static, $doc.body);
  return this$static;
}

function RootPanel$DefaultRootPanel(){
}

_ = RootPanel$DefaultRootPanel.prototype = new RootPanel();
_.typeId$ = 65;
function $SimplePanel$1(this$static, this$0){
  this$static.this$0 = this$0;
  this$static.hasElement = !!this$static.this$0.widget;
  return this$static;
}

function hasNext_0(){
  return this.hasElement;
}

function next_1(){
  if (!this.hasElement || !this.this$0.widget) {
    throw new NoSuchElementException();
  }
  this.hasElement = false;
  return this.this$0.widget;
}

function SimplePanel$1(){
}

_ = SimplePanel$1.prototype = new Object_0();
_.hasNext = hasNext_0;
_.next_0 = next_1;
_.typeId$ = 0;
_.this$0 = null;
function $clinit_197(){
  $clinit_197 = nullMethod;
  $clinit_161();
}

function $selectAll(this$static){
  var length_0;
  length_0 = $getPropertyString(this$static.element, 'value').length;
  if (length_0 > 0) {
    $setSelectionRange(this$static, 0, length_0);
  }
}

function $setSelectionRange(this$static, pos, length_0){
  if (!this$static.attached) {
    return;
  }
  if (length_0 < 0) {
    throw $IndexOutOfBoundsException(new IndexOutOfBoundsException(), 'Length must be a positive integer. Length: ' + length_0);
  }
  if (pos < 0 || length_0 + pos > $getPropertyString(this$static.element, 'value').length) {
    throw $IndexOutOfBoundsException(new IndexOutOfBoundsException(), 'From Index: ' + pos + '  To Index: ' + (pos + length_0) + '  Text Length: ' + $getPropertyString(this$static.element, 'value').length);
  }
  $setSelectionRange_0(this$static.element, pos, length_0);
}

function onBrowserEvent_0(event_0){
  var type;
  type = $eventGetTypeInt(($clinit_11() , event_0).type);
  if ((type & 896) != 0) {
    $onBrowserEvent(this, event_0);
  }
   else {
    $onBrowserEvent(this, event_0);
  }
}

function TextBoxBase(){
}

_ = TextBoxBase.prototype = new FocusWidget();
_.onBrowserEvent = onBrowserEvent_0;
_.typeId$ = 66;
function $clinit_198(){
  $clinit_198 = nullMethod;
  $clinit_197();
}

function $TextBox(this$static){
  var e;
  $clinit_198();
  $TextBox_0(this$static, (e = ($clinit_11() , $doc).createElement('INPUT') , e.type = 'text' , e), 'gwt-TextBox');
  return this$static;
}

function $TextBox_0(this$static, element, styleName){
  $clinit_198();
  this$static.element = element;
  impl.setTabIndex(this$static.element, 0);
  if (styleName != null) {
    this$static.element['className'] = styleName;
  }
  return this$static;
}

function TextBox(){
}

_ = TextBox.prototype = new TextBoxBase();
_.typeId$ = 67;
function $VerticalPanel(this$static){
  this$static.children = $WidgetCollection(new WidgetCollection());
  this$static.table = ($clinit_11() , $doc).createElement('table');
  this$static.body_0 = $doc.createElement('tbody');
  this$static.table.appendChild(this$static.body_0);
  this$static.element = this$static.table;
  this$static.horzAlign = ($clinit_169() , ALIGN_DEFAULT);
  this$static.vertAlign = ($clinit_174() , ALIGN_TOP);
  this$static.table['cellSpacing'] = '0';
  this$static.table['cellPadding'] = '0';
  return this$static;
}

function $add_1(this$static, w){
  var td_0, tr, td;
  tr = ($clinit_11() , $doc).createElement('tr');
  td_0 = (td = $doc.createElement('td') , (td['align'] = this$static.horzAlign.textAlignString , undefined) , (td.style['verticalAlign'] = this$static.vertAlign.verticalAlignString , undefined) , td);
  tr.appendChild(td_0);
  this$static.body_0.appendChild(tr);
  $removeFromParent(w);
  $add_2(this$static.children, w);
  td_0.appendChild(w.element);
  $setParent(w, this$static);
}

function remove_4(w){
  var removed, td;
  td = $getParentElement(($clinit_11() , w.element));
  removed = $remove_1(this, w);
  if (removed) {
    this.body_0.removeChild($getParentElement(td));
  }
  return removed;
}

function VerticalPanel(){
}

_ = VerticalPanel.prototype = new CellPanel();
_.remove = remove_4;
_.typeId$ = 68;
function $WidgetCollection(this$static){
  this$static.array = initDim(_3Lcom_google_gwt_user_client_ui_Widget_2_classLit, 0, 10, 4, 0);
  return this$static;
}

function $add_2(this$static, w){
  $insert(this$static, w, this$static.size);
}

function $indexOf(this$static, w){
  var i;
  for (i = 0; i < this$static.size; ++i) {
    if (this$static.array[i] == w) {
      return i;
    }
  }
  return -1;
}

function $insert(this$static, w, beforeIndex){
  var i, newArray;
  if (beforeIndex < 0 || beforeIndex > this$static.size) {
    throw new IndexOutOfBoundsException();
  }
  if (this$static.size == this$static.array.length) {
    newArray = initDim(_3Lcom_google_gwt_user_client_ui_Widget_2_classLit, 0, 10, this$static.array.length * 2, 0);
    for (i = 0; i < this$static.array.length; ++i) {
      setCheck(newArray, i, this$static.array[i]);
    }
    this$static.array = newArray;
  }
  ++this$static.size;
  for (i = this$static.size - 1; i > beforeIndex; --i) {
    setCheck(this$static.array, i, this$static.array[i - 1]);
  }
  setCheck(this$static.array, beforeIndex, w);
}

function $remove_3(this$static, index){
  var i;
  if (index < 0 || index >= this$static.size) {
    throw new IndexOutOfBoundsException();
  }
  --this$static.size;
  for (i = index; i < this$static.size; ++i) {
    setCheck(this$static.array, i, this$static.array[i + 1]);
  }
  setCheck(this$static.array, this$static.size, null);
}

function $remove_4(this$static, w){
  var index;
  index = $indexOf(this$static, w);
  if (index == -1) {
    throw new NoSuchElementException();
  }
  $remove_3(this$static, index);
}

function WidgetCollection(){
}

_ = WidgetCollection.prototype = new Object_0();
_.typeId$ = 0;
_.array = null;
_.size = 0;
function $WidgetCollection$WidgetIterator(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function hasNext_1(){
  return this.index_0 < this.this$0.size - 1;
}

function next_2(){
  if (this.index_0 >= this.this$0.size) {
    throw new NoSuchElementException();
  }
  return this.this$0.array[++this.index_0];
}

function WidgetCollection$WidgetIterator(){
}

_ = WidgetCollection$WidgetIterator.prototype = new Object_0();
_.hasNext = hasNext_1;
_.next_0 = next_2;
_.typeId$ = 0;
_.index_0 = -1;
_.this$0 = null;
function $clinit_206(){
  $clinit_206 = nullMethod;
  implPanel = $FocusImplSafari(new FocusImplSafari());
  implWidget = implPanel?($clinit_206() , new FocusImpl()):implPanel;
}

function blur_2(elem){
  elem.blur();
}

function focus_2(elem){
  elem.focus();
}

function setTabIndex_0(elem, index){
  elem.tabIndex = index;
}

function FocusImpl(){
}

_ = FocusImpl.prototype = new Object_0();
_.blur_0 = blur_2;
_.focus_0 = focus_2;
_.setTabIndex = setTabIndex_0;
_.typeId$ = 0;
var implPanel, implWidget;
function $clinit_204(){
  $clinit_204 = nullMethod;
  $clinit_206();
}

function $createBlurHandler(){
  return function(evt){
    if (this.parentNode.onblur) {
      this.parentNode.onblur(evt);
    }
  }
  ;
}

function $createFocusHandler(){
  return function(evt){
    if (this.parentNode.onfocus) {
      this.parentNode.onfocus(evt);
    }
  }
  ;
}

function blur_0(elem){
  elem.firstChild.blur();
}

function focus_0(elem){
  elem.firstChild.focus();
}

function setTabIndex(elem, index){
  elem.firstChild.tabIndex = index;
}

function FocusImplOld(){
}

_ = FocusImplOld.prototype = new FocusImpl();
_.blur_0 = blur_0;
_.focus_0 = focus_0;
_.setTabIndex = setTabIndex;
_.typeId$ = 0;
function $clinit_205(){
  $clinit_205 = nullMethod;
  $clinit_204();
}

function $FocusImplSafari(this$static){
  $clinit_205();
  $createBlurHandler();
  $createFocusHandler();
  $createMouseHandler();
  return this$static;
}

function $createMouseHandler(){
  return function(){
    var firstChild = this.firstChild;
    $wnd.setTimeout(function(){
      firstChild.focus();
    }
    , 0);
  }
  ;
}

function blur_1(elem){
  $wnd.setTimeout(function(){
    elem.firstChild.blur();
  }
  , 0);
}

function focus_1(elem){
  $wnd.setTimeout(function(){
    elem.firstChild.focus();
  }
  , 0);
}

function FocusImplSafari(){
}

_ = FocusImplSafari.prototype = new FocusImplOld();
_.blur_0 = blur_1;
_.focus_0 = focus_1;
_.typeId$ = 0;
function $getStyleElement(popup){
  return $getParentElement(($clinit_11() , popup));
}

function $setSelectionRange_0(elem, pos, length_0){
  try {
    elem.setSelectionRange(pos, pos + length_0);
  }
   catch (e) {
  }
}

function ArrayStoreException(){
}

_ = ArrayStoreException.prototype = new RuntimeException();
_.typeId$ = 70;
function createForArray(packageName, className){
  var clazz;
  clazz = new Class();
  return clazz;
}

function Class(){
}

_ = Class.prototype = new Object_0();
_.typeId$ = 0;
function ClassCastException(){
}

_ = ClassCastException.prototype = new RuntimeException();
_.typeId$ = 73;
function $IllegalArgumentException(this$static, message){
  this$static.detailMessage = message;
  return this$static;
}

function IllegalArgumentException(){
}

_ = IllegalArgumentException.prototype = new RuntimeException();
_.typeId$ = 75;
function $IllegalStateException(this$static, s){
  this$static.detailMessage = s;
  return this$static;
}

function IllegalStateException(){
}

_ = IllegalStateException.prototype = new RuntimeException();
_.typeId$ = 76;
function $IndexOutOfBoundsException(this$static, message){
  this$static.detailMessage = message;
  return this$static;
}

function IndexOutOfBoundsException(){
}

_ = IndexOutOfBoundsException.prototype = new RuntimeException();
_.typeId$ = 77;
function Number_0(){
}

_ = Number_0.prototype = new Object_0();
_.typeId$ = 74;
function $Integer(this$static, value){
  this$static.value = value;
  return this$static;
}

function equals_1(o){
  return o != null && canCast(o.typeId$, 14) && dynamicCast(o, 14).value == this.value;
}

function hashCode_3(){
  return this.value;
}

function valueOf(i){
  var rebase, result;
  if (i > -129 && i < 128) {
    rebase = i + 128;
    result = ($clinit_222() , boxedValues)[rebase];
    if (!result) {
      result = boxedValues[rebase] = $Integer(new Integer(), i);
    }
    return result;
  }
  return $Integer(new Integer(), i);
}

function Integer(){
}

_ = Integer.prototype = new Number_0();
_.equals$ = equals_1;
_.hashCode$ = hashCode_3;
_.typeId$ = 78;
_.value = 0;
function $clinit_222(){
  $clinit_222 = nullMethod;
  boxedValues = initDim(_3Ljava_lang_Integer_2_classLit, 0, 14, 256, 0);
}

var boxedValues;
function $NullPointerException(this$static, message){
  this$static.detailMessage = message;
  return this$static;
}

function NullPointerException(){
}

_ = NullPointerException.prototype = new RuntimeException();
_.typeId$ = 79;
function $equals_0(this$static, other){
  if (!(other != null && canCast(other.typeId$, 1))) {
    return false;
  }
  return String(this$static) == other;
}

function $substring(this$static, beginIndex){
  return this$static.substr(beginIndex, this$static.length - beginIndex);
}

function $trim(this$static){
  if (this$static.length == 0 || this$static[0] > ' ' && this$static[this$static.length - 1] > ' ') {
    return this$static;
  }
  var r1 = this$static.replace(/^(\s*)/, '');
  var r2 = r1.replace(/\s*$/, '');
  return r2;
}

function equals_3(other){
  return $equals_0(this, other);
}

function hashCode_5(){
  return getHashCode_0(this);
}

_ = String.prototype;
_.equals$ = equals_3;
_.hashCode$ = hashCode_5;
_.typeId$ = 2;
function $clinit_230(){
  $clinit_230 = nullMethod;
  back = {};
  front = {};
}

function compute(str){
  var hashCode, i, inc, n;
  n = str.length;
  inc = n < 64?1:~~(n / 32);
  hashCode = 0;
  for (i = 0; i < n; i += inc) {
    hashCode <<= 1;
    hashCode += str.charCodeAt(i);
  }
  hashCode |= 0;
  return hashCode;
}

function getHashCode_0(str){
  $clinit_230();
  var key = ':' + str;
  var result = front[key];
  if (result != null) {
    return result;
  }
  result = back[key];
  if (result == null) {
    result = compute(str);
  }
  increment();
  return front[key] = result;
}

function increment(){
  if (count_0 == 256) {
    back = front;
    front = {};
    count_0 = 0;
  }
  ++count_0;
}

var back, count_0 = 0, front;
function $StringBuffer(this$static){
  this$static.impl = new StringBufferImplAppend();
  return this$static;
}

function $append_1(this$static, x){
  this$static.impl.string += x;
  return this$static;
}

function StringBuffer(){
}

_ = StringBuffer.prototype = new Object_0();
_.typeId$ = 80;
function identityHashCode(o){
  return o == null?0:o != null && canCast(o.typeId$, 1)?getHashCode_0(dynamicCast(o, 1)):o.$H || (o.$H = ++sNextHashId);
}

function $UnsupportedOperationException(this$static, message){
  this$static.detailMessage = message;
  return this$static;
}

function UnsupportedOperationException(){
}

_ = UnsupportedOperationException.prototype = new RuntimeException();
_.typeId$ = 81;
function $advanceToFind(iter, o){
  var t;
  while (iter.hasNext()) {
    t = iter.next_0();
    if (o == null?t == null:equals__devirtual$(o, t)) {
      return iter;
    }
  }
  return null;
}

function add_0(o){
  throw $UnsupportedOperationException(new UnsupportedOperationException(), 'Add not supported on this collection');
}

function contains(o){
  var iter;
  iter = $advanceToFind(this.iterator_0(), o);
  return !!iter;
}

function AbstractCollection(){
}

_ = AbstractCollection.prototype = new Object_0();
_.add = add_0;
_.contains = contains;
_.typeId$ = 0;
function $implFindEntry(this$static, key, remove){
  var entry, iter, k;
  for (iter = $AbstractHashMap$EntrySetIterator(new AbstractHashMap$EntrySetIterator(), this$static.entrySet().this$0); $hasNext_0(iter.iter);) {
    entry = iter.last = dynamicCast($next_1(iter.iter), 18);
    k = entry.getKey();
    if (key == null?k == null:equals__devirtual$(key, k)) {
      if (remove) {
        $remove_5(iter);
      }
      return entry;
    }
  }
  return null;
}

function $keySet(this$static){
  var entrySet;
  entrySet = $AbstractHashMap$EntrySet(new AbstractHashMap$EntrySet(), this$static);
  return $AbstractMap$1(new AbstractMap$1(), this$static, entrySet);
}

function containsKey_0(key){
  return !!$implFindEntry(this, key, false);
}

function equals_6(obj){
  var entry, entry$iterator, otherKey, otherMap, otherValue;
  if ((obj == null?null:obj) === this) {
    return true;
  }
  if (!(obj != null && canCast(obj.typeId$, 25))) {
    return false;
  }
  otherMap = dynamicCast(obj, 25);
  if (this.size_0() != otherMap.size_0()) {
    return false;
  }
  for (entry$iterator = $AbstractHashMap$EntrySetIterator(new AbstractHashMap$EntrySetIterator(), otherMap.entrySet().this$0); $hasNext_0(entry$iterator.iter);) {
    entry = entry$iterator.last = dynamicCast($next_1(entry$iterator.iter), 18);
    otherKey = entry.getKey();
    otherValue = entry.getValue();
    if (!this.containsKey(otherKey)) {
      return false;
    }
    if (!equalsWithNullCheck(otherValue, this.get(otherKey))) {
      return false;
    }
  }
  return true;
}

function get_2(key){
  var entry;
  entry = $implFindEntry(this, key, false);
  return !entry?null:entry.getValue();
}

function hashCode_8(){
  var entry, entry$iterator, hashCode;
  hashCode = 0;
  for (entry$iterator = $AbstractHashMap$EntrySetIterator(new AbstractHashMap$EntrySetIterator(), this.entrySet().this$0); $hasNext_0(entry$iterator.iter);) {
    entry = entry$iterator.last = dynamicCast($next_1(entry$iterator.iter), 18);
    hashCode += entry.hashCode$();
    hashCode = ~~hashCode;
  }
  return hashCode;
}

function size_3(){
  return this.entrySet().this$0.size;
}

function AbstractMap(){
}

_ = AbstractMap.prototype = new Object_0();
_.containsKey = containsKey_0;
_.equals$ = equals_6;
_.get = get_2;
_.hashCode$ = hashCode_8;
_.size_0 = size_3;
_.typeId$ = 82;
function $addAllHashEntries(this$static, dest){
  var hashCodeMap = this$static.hashCodeMap;
  for (var hashCode in hashCodeMap) {
    if (hashCode == parseInt(hashCode)) {
      var array = hashCodeMap[hashCode];
      for (var i = 0, c = array.length; i < c; ++i) {
        dest.add(array[i]);
      }
    }
  }
}

function $addAllStringEntries(this$static, dest){
  var stringMap = this$static.stringMap;
  for (var key in stringMap) {
    if (key.charCodeAt(0) == 58) {
      var entry = new_$_0(this$static, key.substring(1));
      dest.add(entry);
    }
  }
}

function $clearImpl(this$static){
  this$static.hashCodeMap = [];
  this$static.stringMap = {};
  this$static.nullSlotLive = false;
  this$static.nullSlot = null;
  this$static.size = 0;
}

function $containsKey(this$static, key){
  return key == null?this$static.nullSlotLive:key != null && canCast(key.typeId$, 1)?$hasStringValue(this$static, dynamicCast(key, 1)):$hasHashValue(this$static, key, this$static.getHashCode(key));
}

function $get(this$static, key){
  return key == null?this$static.nullSlot:key != null && canCast(key.typeId$, 1)?this$static.stringMap[':' + dynamicCast(key, 1)]:$getHashValue(this$static, key, this$static.getHashCode(key));
}

function $getHashValue(this$static, key, hashCode){
  var array = this$static.hashCodeMap[hashCode];
  if (array) {
    for (var i = 0, c = array.length; i < c; ++i) {
      var entry = array[i];
      var entryKey = entry.getKey();
      if (this$static.equalsBridge(key, entryKey)) {
        return entry.getValue();
      }
    }
  }
  return null;
}

function $hasHashValue(this$static, key, hashCode){
  var array = this$static.hashCodeMap[hashCode];
  if (array) {
    for (var i = 0, c = array.length; i < c; ++i) {
      var entry = array[i];
      var entryKey = entry.getKey();
      if (this$static.equalsBridge(key, entryKey)) {
        return true;
      }
    }
  }
  return false;
}

function $hasStringValue(this$static, key){
  return ':' + key in this$static.stringMap;
}

function $put(this$static, key, value){
  return key == null?$putNullSlot(this$static, value):key != null && canCast(key.typeId$, 1)?$putStringValue(this$static, dynamicCast(key, 1), value):$putHashValue(this$static, key, value, ~~hashCode__devirtual$(key));
}

function $putHashValue(this$static, key, value, hashCode){
  var array = this$static.hashCodeMap[hashCode];
  if (array) {
    for (var i = 0, c = array.length; i < c; ++i) {
      var entry = array[i];
      var entryKey = entry.getKey();
      if (this$static.equalsBridge(key, entryKey)) {
        var previous = entry.getValue();
        entry.setValue(value);
        return previous;
      }
    }
  }
   else {
    array = this$static.hashCodeMap[hashCode] = [];
  }
  var entry = $MapEntryImpl(new MapEntryImpl(), key, value);
  array.push(entry);
  ++this$static.size;
  return null;
}

function $putNullSlot(this$static, value){
  var result;
  result = this$static.nullSlot;
  this$static.nullSlot = value;
  if (!this$static.nullSlotLive) {
    this$static.nullSlotLive = true;
    ++this$static.size;
  }
  return result;
}

function $putStringValue(this$static, key, value){
  var result, stringMap = this$static.stringMap;
  key = ':' + key;
  if (key in stringMap) {
    result = stringMap[key];
  }
   else {
    ++this$static.size;
  }
  stringMap[key] = value;
  return result;
}

function $remove_6(this$static, key){
  return key == null?$removeNullSlot(this$static):key != null && canCast(key.typeId$, 1)?$removeStringValue(this$static, dynamicCast(key, 1)):$removeHashValue(this$static, key, this$static.getHashCode(key));
}

function $removeHashValue(this$static, key, hashCode){
  var array = this$static.hashCodeMap[hashCode];
  if (array) {
    for (var i = 0, c = array.length; i < c; ++i) {
      var entry = array[i];
      var entryKey = entry.getKey();
      if (this$static.equalsBridge(key, entryKey)) {
        if (array.length == 1) {
          delete this$static.hashCodeMap[hashCode];
        }
         else {
          array.splice(i, 1);
        }
        --this$static.size;
        return entry.getValue();
      }
    }
  }
  return null;
}

function $removeNullSlot(this$static){
  var result;
  result = this$static.nullSlot;
  this$static.nullSlot = null;
  if (this$static.nullSlotLive) {
    this$static.nullSlotLive = false;
    --this$static.size;
  }
  return result;
}

function $removeStringValue(this$static, key){
  var result, stringMap = this$static.stringMap;
  key = ':' + key;
  if (key in stringMap) {
    result = stringMap[key];
    --this$static.size;
    delete stringMap[key];
  }
  return result;
}

function containsKey(key){
  return key == null?this.nullSlotLive:key != null && canCast(key.typeId$, 1)?':' + dynamicCast(key, 1) in this.stringMap:$hasHashValue(this, key, this.getHashCode(key));
}

function entrySet_0(){
  return $AbstractHashMap$EntrySet(new AbstractHashMap$EntrySet(), this);
}

function equalsBridge(value1, value2){
  return this.equals(value1, value2);
}

function get_1(key){
  return key == null?this.nullSlot:key != null && canCast(key.typeId$, 1)?this.stringMap[':' + dynamicCast(key, 1)]:$getHashValue(this, key, this.getHashCode(key));
}

function size_1(){
  return this.size;
}

function AbstractHashMap(){
}

_ = AbstractHashMap.prototype = new AbstractMap();
_.containsKey = containsKey;
_.entrySet = entrySet_0;
_.equalsBridge = equalsBridge;
_.get = get_1;
_.size_0 = size_1;
_.typeId$ = 83;
_.hashCodeMap = null;
_.nullSlot = null;
_.nullSlotLive = false;
_.size = 0;
_.stringMap = null;
function equals_7(o){
  var iter, other, otherItem;
  if ((o == null?null:o) === this) {
    return true;
  }
  if (!(o != null && canCast(o.typeId$, 26))) {
    return false;
  }
  other = dynamicCast(o, 26);
  if (other.size_0() != this.size_0()) {
    return false;
  }
  for (iter = other.iterator_0(); iter.hasNext();) {
    otherItem = iter.next_0();
    if (!this.contains(otherItem)) {
      return false;
    }
  }
  return true;
}

function hashCode_9(){
  var hashCode, iter, next;
  hashCode = 0;
  for (iter = this.iterator_0(); iter.hasNext();) {
    next = iter.next_0();
    if (next != null) {
      hashCode += hashCode__devirtual$(next);
      hashCode = ~~hashCode;
    }
  }
  return hashCode;
}

function AbstractSet(){
}

_ = AbstractSet.prototype = new AbstractCollection();
_.equals$ = equals_7;
_.hashCode$ = hashCode_9;
_.typeId$ = 84;
function $AbstractHashMap$EntrySet(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function $contains(this$static, o){
  var entry, key, value;
  if (o != null && canCast(o.typeId$, 18)) {
    entry = dynamicCast(o, 18);
    key = entry.getKey();
    if ($containsKey(this$static.this$0, key)) {
      value = $get(this$static.this$0, key);
      return this$static.this$0.equals(entry.getValue(), value);
    }
  }
  return false;
}

function contains_0(o){
  return $contains(this, o);
}

function iterator_2(){
  return $AbstractHashMap$EntrySetIterator(new AbstractHashMap$EntrySetIterator(), this.this$0);
}

function size_0(){
  return this.this$0.size;
}

function AbstractHashMap$EntrySet(){
}

_ = AbstractHashMap$EntrySet.prototype = new AbstractSet();
_.contains = contains_0;
_.iterator_0 = iterator_2;
_.size_0 = size_0;
_.typeId$ = 85;
_.this$0 = null;
function $AbstractHashMap$EntrySetIterator(this$static, this$0){
  var list;
  this$static.this$0 = this$0;
  list = $ArrayList(new ArrayList());
  if (this$static.this$0.nullSlotLive) {
    $add_4(list, $AbstractHashMap$MapEntryNull(new AbstractHashMap$MapEntryNull(), this$static.this$0));
  }
  $addAllStringEntries(this$static.this$0, list);
  $addAllHashEntries(this$static.this$0, list);
  this$static.iter = $AbstractList$IteratorImpl(new AbstractList$IteratorImpl(), list);
  return this$static;
}

function $next_0(this$static){
  return this$static.last = dynamicCast($next_1(this$static.iter), 18);
}

function $remove_5(this$static){
  if (!this$static.last) {
    throw $IllegalStateException(new IllegalStateException(), 'Must call next() before remove().');
  }
   else {
    $remove_7(this$static.iter);
    $remove_6(this$static.this$0, this$static.last.getKey());
    this$static.last = null;
  }
}

function hasNext_2(){
  return $hasNext_0(this.iter);
}

function next_3(){
  return this.last = dynamicCast($next_1(this.iter), 18);
}

function AbstractHashMap$EntrySetIterator(){
}

_ = AbstractHashMap$EntrySetIterator.prototype = new Object_0();
_.hasNext = hasNext_2;
_.next_0 = next_3;
_.typeId$ = 0;
_.iter = null;
_.last = null;
_.this$0 = null;
function equals_5(other){
  var entry;
  if (other != null && canCast(other.typeId$, 18)) {
    entry = dynamicCast(other, 18);
    if (equalsWithNullCheck(this.getKey(), entry.getKey()) && equalsWithNullCheck(this.getValue(), entry.getValue())) {
      return true;
    }
  }
  return false;
}

function hashCode_7(){
  var keyHash, valueHash;
  keyHash = 0;
  valueHash = 0;
  if (this.getKey() != null) {
    keyHash = hashCode__devirtual$(this.getKey());
  }
  if (this.getValue() != null) {
    valueHash = hashCode__devirtual$(this.getValue());
  }
  return keyHash ^ valueHash;
}

function AbstractMapEntry(){
}

_ = AbstractMapEntry.prototype = new Object_0();
_.equals$ = equals_5;
_.hashCode$ = hashCode_7;
_.typeId$ = 86;
function $AbstractHashMap$MapEntryNull(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function getKey(){
  return null;
}

function getValue(){
  return this.this$0.nullSlot;
}

function setValue(object){
  return $putNullSlot(this.this$0, object);
}

function AbstractHashMap$MapEntryNull(){
}

_ = AbstractHashMap$MapEntryNull.prototype = new AbstractMapEntry();
_.getKey = getKey;
_.getValue = getValue;
_.setValue = setValue;
_.typeId$ = 87;
_.this$0 = null;
function $AbstractHashMap$MapEntryString(this$static, key, this$0){
  this$static.this$0 = this$0;
  this$static.key = key;
  return this$static;
}

function getKey_0(){
  return this.key;
}

function getValue_0(){
  return this.this$0.stringMap[':' + this.key];
}

function new_$_0(this$outer, key){
  return $AbstractHashMap$MapEntryString(new AbstractHashMap$MapEntryString(), key, this$outer);
}

function setValue_0(object){
  return $putStringValue(this.this$0, this.key, object);
}

function AbstractHashMap$MapEntryString(){
}

_ = AbstractHashMap$MapEntryString.prototype = new AbstractMapEntry();
_.getKey = getKey_0;
_.getValue = getValue_0;
_.setValue = setValue_0;
_.typeId$ = 88;
_.key = null;
_.this$0 = null;
function add_1(obj){
  $add_3(this, this.size_0(), obj);
  return true;
}

function checkIndex(index, size){
  if (index < 0 || index >= size) {
    indexOutOfBounds(index, size);
  }
}

function equals_4(o){
  var elem, elemOther, iter, iterOther, other;
  if ((o == null?null:o) === this) {
    return true;
  }
  if (!(o != null && canCast(o.typeId$, 5))) {
    return false;
  }
  other = dynamicCast(o, 5);
  if (this.size_0() != other.size) {
    return false;
  }
  iter = $AbstractList$IteratorImpl(new AbstractList$IteratorImpl(), dynamicCast(this, 5));
  iterOther = $AbstractList$IteratorImpl(new AbstractList$IteratorImpl(), other);
  while (iter.i < iter.this$0.size) {
    elem = $next_1(iter);
    elemOther = $next_1(iterOther);
    if (!(elem == null?elemOther == null:equals__devirtual$(elem, elemOther))) {
      return false;
    }
  }
  return true;
}

function hashCode_6(){
  var iter, k, obj;
  k = 1;
  iter = $AbstractList$IteratorImpl(new AbstractList$IteratorImpl(), dynamicCast(this, 5));
  while (iter.i < iter.this$0.size) {
    obj = $next_1(iter);
    k = 31 * k + (obj == null?0:hashCode__devirtual$(obj));
    k = ~~k;
  }
  return k;
}

function indexOutOfBounds(index, size){
  throw $IndexOutOfBoundsException(new IndexOutOfBoundsException(), 'Index: ' + index + ', Size: ' + size);
}

function iterator_3(){
  return $AbstractList$IteratorImpl(new AbstractList$IteratorImpl(), dynamicCast(this, 5));
}

function AbstractList(){
}

_ = AbstractList.prototype = new AbstractCollection();
_.add = add_1;
_.equals$ = equals_4;
_.hashCode$ = hashCode_6;
_.iterator_0 = iterator_3;
_.typeId$ = 0;
function $AbstractList$IteratorImpl(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function $hasNext_0(this$static){
  return this$static.i < this$static.this$0.size;
}

function $next_1(this$static){
  if (this$static.i >= this$static.this$0.size) {
    throw new NoSuchElementException();
  }
  return $get_0(this$static.this$0, this$static.last = this$static.i++);
}

function $remove_7(this$static){
  if (this$static.last < 0) {
    throw new IllegalStateException();
  }
  $remove_8(this$static.this$0, this$static.last);
  this$static.i = this$static.last;
  this$static.last = -1;
}

function hasNext_3(){
  return this.i < this.this$0.size;
}

function next_4(){
  return $next_1(this);
}

function AbstractList$IteratorImpl(){
}

_ = AbstractList$IteratorImpl.prototype = new Object_0();
_.hasNext = hasNext_3;
_.next_0 = next_4;
_.typeId$ = 0;
_.i = 0;
_.last = -1;
_.this$0 = null;
function $AbstractMap$1(this$static, this$0, val$entrySet){
  this$static.this$0 = this$0;
  this$static.val$entrySet = val$entrySet;
  return this$static;
}

function contains_1(key){
  return $containsKey(this.this$0, key);
}

function iterator_4(){
  var outerIter;
  return outerIter = $AbstractHashMap$EntrySetIterator(new AbstractHashMap$EntrySetIterator(), this.val$entrySet.this$0) , $AbstractMap$1$1(new AbstractMap$1$1(), outerIter);
}

function size_2(){
  return this.val$entrySet.this$0.size;
}

function AbstractMap$1(){
}

_ = AbstractMap$1.prototype = new AbstractSet();
_.contains = contains_1;
_.iterator_0 = iterator_4;
_.size_0 = size_2;
_.typeId$ = 89;
_.this$0 = null;
_.val$entrySet = null;
function $AbstractMap$1$1(this$static, val$outerIter){
  this$static.val$outerIter = val$outerIter;
  return this$static;
}

function hasNext_4(){
  return $hasNext_0(this.val$outerIter.iter);
}

function next_5(){
  var entry;
  return entry = $next_0(this.val$outerIter) , entry.getKey();
}

function AbstractMap$1$1(){
}

_ = AbstractMap$1$1.prototype = new Object_0();
_.hasNext = hasNext_4;
_.next_0 = next_5;
_.typeId$ = 0;
_.val$outerIter = null;
function $ArrayList(this$static){
  this$static.array = initDim(_3Ljava_lang_Object_2_classLit, 0, 0, 0, 0);
  this$static.size = 0;
  return this$static;
}

function $add_4(this$static, o){
  setCheck(this$static.array, this$static.size++, o);
  return true;
}

function $add_3(this$static, index, o){
  if (index < 0 || index > this$static.size) {
    indexOutOfBounds(index, this$static.size);
  }
  this$static.array.splice(index, 0, o);
  ++this$static.size;
}

function $clear(this$static){
  this$static.array = initDim(_3Ljava_lang_Object_2_classLit, 0, 0, 0, 0);
  this$static.size = 0;
}

function $clearImpl_0(this$static){
  this$static.array = initDim(_3Ljava_lang_Object_2_classLit, 0, 0, 0, 0);
  this$static.size = 0;
}

function $get_0(this$static, index){
  checkIndex(index, this$static.size);
  return this$static.array[index];
}

function $indexOf_2(this$static, o, index){
  for (; index < this$static.size; ++index) {
    if (equalsWithNullCheck(o, this$static.array[index])) {
      return index;
    }
  }
  return -1;
}

function $remove_8(this$static, index){
  var previous;
  previous = (checkIndex(index, this$static.size) , this$static.array[index]);
  this$static.array.splice(index, 1);
  --this$static.size;
  return previous;
}

function $remove_9(this$static, o){
  var i;
  i = $indexOf_2(this$static, o, 0);
  if (i == -1) {
    return false;
  }
  $remove_8(this$static, i);
  return true;
}

function $set(this$static, index, o){
  var previous;
  previous = (checkIndex(index, this$static.size) , this$static.array[index]);
  setCheck(this$static.array, index, o);
  return previous;
}

function $toArray(this$static, out){
  var i, a, result;
  if (out.length < this$static.size) {
    out = (a = out , result = createFromSeed(0, this$static.size) , initValues(a.arrayClass$, a.typeId$, a.queryId$, result) , result);
  }
  for (i = 0; i < this$static.size; ++i) {
    setCheck(out, i, this$static.array[i]);
  }
  if (out.length > this$static.size) {
    setCheck(out, this$static.size, null);
  }
  return out;
}

function add_2(o){
  return setCheck(this.array, this.size++, o) , true;
}

function contains_2(o){
  return $indexOf_2(this, o, 0) != -1;
}

function size_4(){
  return this.size;
}

function ArrayList(){
}

_ = ArrayList.prototype = new AbstractList();
_.add = add_2;
_.contains = contains_2;
_.size_0 = size_4;
_.typeId$ = 90;
_.array = null;
_.size = 0;
function $HashMap(this$static){
  $clearImpl(this$static);
  return this$static;
}

function equals_8(value1, value2){
  return (value1 == null?null:value1) === (value2 == null?null:value2) || value1 != null && equals__devirtual$(value1, value2);
}

function getHashCode_1(key){
  return ~~hashCode__devirtual$(key);
}

function HashMap(){
}

_ = HashMap.prototype = new AbstractHashMap();
_.equals = equals_8;
_.getHashCode = getHashCode_1;
_.typeId$ = 91;
function $HashSet(this$static){
  this$static.map = $HashMap(new HashMap());
  return this$static;
}

function $add_5(this$static, o){
  var old;
  old = $put(this$static.map, o, this$static);
  return old == null;
}

function add_3(o){
  var old;
  return old = $put(this.map, o, this) , old == null;
}

function contains_3(o){
  return $containsKey(this.map, o);
}

function iterator_5(){
  var outerIter;
  return outerIter = $AbstractHashMap$EntrySetIterator(new AbstractHashMap$EntrySetIterator(), $keySet(this.map).val$entrySet.this$0) , $AbstractMap$1$1(new AbstractMap$1$1(), outerIter);
}

function size_5(){
  return this.map.size;
}

function HashSet(){
}

_ = HashSet.prototype = new AbstractSet();
_.add = add_3;
_.contains = contains_3;
_.iterator_0 = iterator_5;
_.size_0 = size_5;
_.typeId$ = 92;
_.map = null;
function $IdentityHashMap(this$static){
  $clearImpl(this$static);
  return this$static;
}

function equals_9(obj){
  var entry, entry$iterator, otherKey, otherMap, otherValue;
  if ((obj == null?null:obj) === this) {
    return true;
  }
  if (!(obj != null && canCast(obj.typeId$, 25))) {
    return false;
  }
  otherMap = dynamicCast(obj, 25);
  if (this.size != otherMap.size_0()) {
    return false;
  }
  for (entry$iterator = $AbstractHashMap$EntrySetIterator(new AbstractHashMap$EntrySetIterator(), otherMap.entrySet().this$0); $hasNext_0(entry$iterator.iter);) {
    entry = entry$iterator.last = dynamicCast($next_1(entry$iterator.iter), 18);
    otherKey = entry.getKey();
    otherValue = entry.getValue();
    if (!(otherKey == null?this.nullSlotLive:otherKey != null && canCast(otherKey.typeId$, 1)?':' + dynamicCast(otherKey, 1) in this.stringMap:$hasHashValue(this, otherKey, otherKey.$H || (otherKey.$H = ++sNextHashId)))) {
      return false;
    }
    if ((otherValue == null?null:otherValue) !== maskUndefined(otherKey == null?this.nullSlot:otherKey != null && canCast(otherKey.typeId$, 1)?this.stringMap[':' + dynamicCast(otherKey, 1)]:$getHashValue(this, otherKey, otherKey.$H || (otherKey.$H = ++sNextHashId)))) {
      return false;
    }
  }
  return true;
}

function equals_10(value1, value2){
  return (value1 == null?null:value1) === (value2 == null?null:value2);
}

function getHashCode_2(key){
  return key.$H || (key.$H = ++sNextHashId);
}

function hashCode_10(){
  var entry, entry$iterator, hashCode;
  hashCode = 0;
  for (entry$iterator = $AbstractHashMap$EntrySetIterator(new AbstractHashMap$EntrySetIterator(), $AbstractHashMap$EntrySet(new AbstractHashMap$EntrySet(), this).this$0); $hasNext_0(entry$iterator.iter);) {
    entry = entry$iterator.last = dynamicCast($next_1(entry$iterator.iter), 18);
    hashCode += identityHashCode(entry.getKey());
    hashCode += identityHashCode(entry.getValue());
  }
  return hashCode;
}

function IdentityHashMap(){
}

_ = IdentityHashMap.prototype = new AbstractHashMap();
_.equals$ = equals_9;
_.equals = equals_10;
_.getHashCode = getHashCode_2;
_.hashCode$ = hashCode_10;
_.typeId$ = 93;
function $MapEntryImpl(this$static, key, value){
  this$static.key = key;
  this$static.value = value;
  return this$static;
}

function getKey_1(){
  return this.key;
}

function getValue_1(){
  return this.value;
}

function setValue_1(value){
  var old;
  old = this.value;
  this.value = value;
  return old;
}

function MapEntryImpl(){
}

_ = MapEntryImpl.prototype = new AbstractMapEntry();
_.getKey = getKey_1;
_.getValue = getValue_1;
_.setValue = setValue_1;
_.typeId$ = 94;
_.key = null;
_.value = null;
function NoSuchElementException(){
}

_ = NoSuchElementException.prototype = new RuntimeException();
_.typeId$ = 95;
function equalsWithNullCheck(a, b){
  return (a == null?null:a) === (b == null?null:b) || a != null && equals__devirtual$(a, b);
}

function $Fukila2(this$static){
  this$static.greetingService = $GreetingService_Proxy(new GreetingService_Proxy());
  return this$static;
}

function $onModuleLoad(this$static){
  var closeButton, dialogBox, dialogVPanel, handler, nameField, sendButton, serverResponseLabel, textToServerLabel;
  sendButton = $Button_0(new Button(), 'Send');
  nameField = $TextBox(new TextBox());
  nameField.element['value'] = 'GWT User' != null?'GWT User':'';
  setStyleName(sendButton.element, 'sendButton', true);
  $add(get_0('nameFieldContainer'), nameField);
  $add(get_0('sendButtonContainer'), sendButton);
  $setFocus(nameField, true);
  $selectAll(nameField);
  dialogBox = $DialogBox(new DialogBox());
  $setInnerText(($clinit_11() , dialogBox.caption.element), 'Remote Procedure Call');
  dialogBox.isAnimationEnabled = true;
  closeButton = $Button_0(new Button(), 'Close');
  closeButton.element.id = 'closeButton';
  textToServerLabel = $Label(new Label());
  serverResponseLabel = $HTML(new HTML());
  dialogVPanel = $VerticalPanel(new VerticalPanel());
  setStyleName(dialogVPanel.element, 'dialogVPanel', true);
  $add_1(dialogVPanel, $HTML_0(new HTML(), '<b>Sending name to the server:<\/b>'));
  $add_1(dialogVPanel, textToServerLabel);
  $add_1(dialogVPanel, $HTML_0(new HTML(), '<br><b>Server replies:<\/b>'));
  $add_1(dialogVPanel, serverResponseLabel);
  dialogVPanel.horzAlign = ($clinit_169() , ALIGN_RIGHT);
  $add_1(dialogVPanel, closeButton);
  $setWidget_0(dialogBox.decPanel, dialogVPanel);
  $maybeUpdateSize(dialogBox);
  $addDomHandler(closeButton, $Fukila2$1(new Fukila2$1(), dialogBox, sendButton), ($clinit_17() , TYPE));
  handler = $Fukila2$1MyHandler(new Fukila2$1MyHandler(), this$static, sendButton, nameField, textToServerLabel, serverResponseLabel, dialogBox, closeButton);
  $addDomHandler(sendButton, handler, TYPE);
  $addDomHandler(nameField, handler, ($clinit_40() , TYPE_0));
}

function Fukila2(){
}

_ = Fukila2.prototype = new Object_0();
_.typeId$ = 0;
function $Fukila2$1(this$static, val$dialogBox, val$sendButton){
  this$static.val$dialogBox = val$dialogBox;
  this$static.val$sendButton = val$sendButton;
  return this$static;
}

function onClick_0(event_0){
  $hide(this.val$dialogBox);
  this.val$sendButton.element['disabled'] = !true;
  $setFocus(this.val$sendButton, true);
}

function Fukila2$1(){
}

_ = Fukila2$1.prototype = new Object_0();
_.onClick = onClick_0;
_.typeId$ = 96;
_.val$dialogBox = null;
_.val$sendButton = null;
function $Fukila2$1MyHandler(this$static, this$0, val$sendButton, val$nameField, val$textToServerLabel, val$serverResponseLabel, val$dialogBox, val$closeButton){
  this$static.this$0 = this$0;
  this$static.val$sendButton = val$sendButton;
  this$static.val$nameField = val$nameField;
  this$static.val$textToServerLabel = val$textToServerLabel;
  this$static.val$serverResponseLabel = val$serverResponseLabel;
  this$static.val$dialogBox = val$dialogBox;
  this$static.val$closeButton = val$closeButton;
  return this$static;
}

function $onKeyUp(this$static, event_0){
  if ($eventGetKeyCode(($clinit_11() , event_0.nativeEvent)) == 13) {
    $sendNameToServer(this$static);
  }
}

function $sendNameToServer(this$static){
  var textToServer;
  this$static.val$sendButton.element['disabled'] = !false;
  textToServer = $getPropertyString(this$static.val$nameField.element, 'value');
  $setInnerText(($clinit_11() , this$static.val$textToServerLabel.element), textToServer);
  $setInnerText(this$static.val$serverResponseLabel.element, '');
  $greetServer(this$static.this$0.greetingService, textToServer, $Fukila2$1MyHandler$1(new Fukila2$1MyHandler$1(), this$static.val$dialogBox, this$static.val$serverResponseLabel, this$static.val$closeButton));
}

function onClick(event_0){
  $sendNameToServer(this);
}

function Fukila2$1MyHandler(){
}

_ = Fukila2$1MyHandler.prototype = new Object_0();
_.onClick = onClick;
_.typeId$ = 97;
_.this$0 = null;
_.val$closeButton = null;
_.val$dialogBox = null;
_.val$nameField = null;
_.val$sendButton = null;
_.val$serverResponseLabel = null;
_.val$textToServerLabel = null;
function $Fukila2$1MyHandler$1(this$static, val$dialogBox, val$serverResponseLabel, val$closeButton){
  this$static.val$dialogBox = val$dialogBox;
  this$static.val$serverResponseLabel = val$serverResponseLabel;
  this$static.val$closeButton = val$closeButton;
  return this$static;
}

function $onFailure(this$static){
  $setInnerText(($clinit_11() , this$static.val$dialogBox.caption.element), 'Remote Procedure Call - Failure');
  setStyleName(this$static.val$serverResponseLabel.element, 'serverResponseLabelError', true);
  this$static.val$serverResponseLabel.element.innerHTML = 'An error occurred while attempting to contact the server. Please check your network connection and try again.';
  $center(this$static.val$dialogBox);
  $setFocus(this$static.val$closeButton, true);
}

function $onSuccess(this$static, result){
  $setInnerText(($clinit_11() , this$static.val$dialogBox.caption.element), 'Remote Procedure Call');
  setStyleName(this$static.val$serverResponseLabel.element, 'serverResponseLabelError', false);
  this$static.val$serverResponseLabel.element.innerHTML = result || '';
  $center(this$static.val$dialogBox);
  $setFocus(this$static.val$closeButton, true);
}

function Fukila2$1MyHandler$1(){
}

_ = Fukila2$1MyHandler$1.prototype = new Object_0();
_.typeId$ = 0;
_.val$closeButton = null;
_.val$dialogBox = null;
_.val$serverResponseLabel = null;
function $clinit_269(){
  $clinit_269 = nullMethod;
  $clinit_270();
}

function $GreetingService_Proxy(this$static){
  $clinit_269();
  $RemoteServiceProxy(this$static, $moduleBase, 'greet', '29F4EA1240F157649C12466F01F46F60');
  return this$static;
}

function $greetServer(this$static, input, callback){
  var payload, streamWriter, clientSerializationStreamWriter, buffer;
  ++requestId_0;
  !!$stats && $stats({moduleName:$moduleName, subSystem:'rpc', evtGroup:requestId_0, method:'GreetingService_Proxy.greetServer', millis:(new Date()).getTime(), type:'begin'});
  streamWriter = (clientSerializationStreamWriter = $ClientSerializationStreamWriter(new ClientSerializationStreamWriter(), this$static.moduleBaseURL, this$static.serializationPolicyName) , $clearImpl(clientSerializationStreamWriter.objectMap) , $clearImpl(clientSerializationStreamWriter.stringMap) , $clear(clientSerializationStreamWriter.stringTable) , clientSerializationStreamWriter.encodeBuffer = $StringBuffer(new StringBuffer()) , $writeString(clientSerializationStreamWriter, clientSerializationStreamWriter.moduleBaseURL) , $writeString(clientSerializationStreamWriter, clientSerializationStreamWriter.serializationPolicyStrongName) , clientSerializationStreamWriter);
  append(streamWriter.encodeBuffer, '' + $addString(streamWriter, 'org.fukila.web.client.GreetingService'));
  append(streamWriter.encodeBuffer, '' + $addString(streamWriter, 'greetServer'));
  append(streamWriter.encodeBuffer, '1');
  append(streamWriter.encodeBuffer, '' + $addString(streamWriter, 'java.lang.String'));
  append(streamWriter.encodeBuffer, '' + $addString(streamWriter, input));
  payload = (buffer = $StringBuffer(new StringBuffer()) , append(buffer, '' + streamWriter.version) , append(buffer, '' + streamWriter.flags) , $writeStringTable(streamWriter, buffer) , $append_1(buffer, streamWriter.encodeBuffer.impl.string) , buffer.impl.string);
  !!$stats && $stats({moduleName:$moduleName, subSystem:'rpc', evtGroup:requestId_0, method:'GreetingService_Proxy.greetServer', millis:(new Date()).getTime(), type:'requestSerialized'});
  $doInvoke(this$static, ($clinit_147() , 'GreetingService_Proxy.greetServer'), requestId_0, payload, callback);
}

function GreetingService_Proxy(){
}

_ = GreetingService_Proxy.prototype = new RemoteServiceProxy();
_.typeId$ = 0;
function $clinit_270(){
  $clinit_270 = nullMethod;
  methodMap = {'com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException/3936916533':[instantiate, deserialize, serialize], 'java.lang.String/2004016611':[instantiate_0, deserialize_0, serialize_0]};
}

function $deserialize_0(streamReader, instance, typeSignature){
  var methodTable = methodMap[typeSignature];
  if (!methodTable) {
    raiseSerializationException(typeSignature);
  }
  methodTable[1](streamReader, instance);
}

function $instantiate(streamReader, typeSignature){
  var methodTable = methodMap[typeSignature];
  if (!methodTable) {
    raiseSerializationException(typeSignature);
  }
  return methodTable[0](streamReader);
}

function raiseSerializationException(msg){
  throw $SerializationException(new SerializationException(), msg);
}

var methodMap;
function init(){
  !!$stats && $stats({moduleName:$moduleName, subSystem:'startup', evtGroup:'moduleStartup', millis:(new Date()).getTime(), type:'onModuleLoadStart', className:'org.fukila.web.client.Fukila2'});
  $onModuleLoad($Fukila2(new Fukila2()));
}

function gwtOnLoad(errFn, modName, modBase){
  $moduleName = modName;
  $moduleBase = modBase;
  if (errFn)
    try {
      init();
    }
     catch (e) {
      errFn(modName);
    }
   else {
    init();
  }
}

function nullMethod(){
}

var _3Lcom_google_gwt_animation_client_Animation_2_classLit = createForArray('[Lcom.google.gwt.animation.client.', 'Animation;'), _3Ljava_lang_String_2_classLit = createForArray('[Ljava.lang.', 'String;'), _3Lcom_google_gwt_user_client_ui_Widget_2_classLit = createForArray('[Lcom.google.gwt.user.client.ui.', 'Widget;'), _3Ljava_lang_Integer_2_classLit = createForArray('[Ljava.lang.', 'Integer;'), _3Ljava_lang_Object_2_classLit = createForArray('[Ljava.lang.', 'Object;');
$stats && $stats({moduleName:'fukila2',subSystem:'startup',evtGroup:'moduleStartup',millis:(new Date()).getTime(),type:'moduleEvalEnd'});
if ($wnd.fukila2) $wnd.fukila2.onScriptLoad();
--></script></body></html>
